Преглед изворни кода

Menampilkan Button Nota Berdasarkan Nota yang Sudah Ada dari Checkout

* [Logic] Membuat ServiceApiBarang
* [Logic + UI] Fungsi menambahkan nota dengan ambil dari checkout
* Menghilangkan fungsi static menampilkan nota di form utama
* Login mengecek apakah user name kosong
pull/3/head
Ronaldo Christnawan пре 5 година
родитељ
комит
5c6522bb9d
13 измењених фајлова са 1167 додато и 195 уклоњено
  1. +35
    -73
      src/main/java/id/amigogroup/posterminal/FormUtamaController.java
  2. +14
    -0
      src/main/java/id/amigogroup/posterminal/api/AmigoPosRx.java
  3. +20
    -0
      src/main/java/id/amigogroup/posterminal/api/ServiceApiBarang.java
  4. +42
    -15
      src/main/java/id/amigogroup/posterminal/keamanan/FormLoginController.java
  5. +195
    -0
      src/main/java/id/amigogroup/posterminal/model/Barang.java
  6. +182
    -0
      src/main/java/id/amigogroup/posterminal/model/DNotaTunai.java
  7. +143
    -0
      src/main/java/id/amigogroup/posterminal/model/MNotaRetur.java
  8. +299
    -0
      src/main/java/id/amigogroup/posterminal/model/MNotaTunai.java
  9. +60
    -0
      src/main/java/id/amigogroup/posterminal/transaksi/DetailTransaksi.java
  10. +170
    -103
      src/main/java/id/amigogroup/posterminal/transaksi/DialogTambahNotaController.java
  11. +3
    -0
      src/main/java/id/amigogroup/posterminal/util/AlertUtil.java
  12. +3
    -0
      src/main/java/id/amigogroup/posterminal/util/Fucout.java
  13. +1
    -4
      src/main/resources/fxml/FormUtama.fxml

+ 35
- 73
src/main/java/id/amigogroup/posterminal/FormUtamaController.java Прегледај датотеку

@@ -3,6 +3,8 @@ package id.amigogroup.posterminal;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import id.amigogroup.posterminal.api.AmigoPosRx;
import id.amigogroup.posterminal.model.MNotaRetur;
import id.amigogroup.posterminal.model.MNotaTunai;
import id.amigogroup.posterminal.model.Pelanggan;
import id.amigogroup.posterminal.pencarian.DialogCariBarangController;
import id.amigogroup.posterminal.pencarian.DialogCariNotaTundaController;
@@ -19,6 +21,7 @@ import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.SocketTimeoutException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
@@ -64,12 +67,6 @@ public class FormUtamaController implements Initializable {
@FXML
private Label lblNamaLogin;
@FXML
private Button btnTunai1Static;
@FXML
private Button btnRetur1Static;
@FXML
private Button btnTunai2Static;
@FXML
private Label lblMemberNonMember;
@FXML
private Label lblKodePelanggan;
@@ -110,29 +107,6 @@ public class FormUtamaController implements Initializable {
}

initShorcuts();

//STATIC FUNCTION, hilangkan jika sudah tidak dipakai
navigasi.add(btnTunai1Static);
navigasi.add(btnRetur1Static);
navigasi.add(btnTunai2Static);
jumlahNota = 3;

btnTunai1Static.setOnAction((event) -> {
// posRx.getPelangganByKodeMember("010004").subscribe(pelangganObserver);
setContent(loadNota("", FormConstanta.TRANSAKSI_TUNAI));
updateSelectedNota(event);
tipeNotaState = Fucout.TIPE_NOTA_TUNAI;
});
btnRetur1Static.setOnAction((event) -> {
setContent(loadNota("", FormConstanta.TRANSAKSI_RETUR));
updateSelectedNota(event);
tipeNotaState = Fucout.TIPE_NOTA_RETUR;
});
btnTunai2Static.setOnAction((event) -> {
setContent(loadNota("", FormConstanta.TRANSAKSI_TUNAI));
updateSelectedNota(event);
tipeNotaState = Fucout.TIPE_NOTA_TUNAI;
});
}

private void updateLabelPelanggan(Pelanggan p) {
@@ -162,30 +136,6 @@ public class FormUtamaController implements Initializable {
Button buttonSource = (Button) event.getSource();
notaState = navigasi.indexOf(buttonSource);
Fucout.scrollToNode(spNavigasi, buttonSource);
// if (!tableState.equals(buttonSource.getText().toLowerCase())) {
// switch (buttonSource.getText().toLowerCase()) {
// case BTN_TUNAI:
// //ambil data tunai
// tableState = BTN_TUNAI;
// System.out.println("ambil data tunai");
// break;
// case BTN_BAWA_DULU:
// //ambil data bawa dulu
// tableState = BTN_BAWA_DULU;
// System.out.println("ambil data bawa dulu");
// break;
// case BTN_BON:
// //ambil data bon
// tableState = BTN_BON;
// System.out.println("ambil data bon");
// break;
// case BTN_RETUR:
// //ambil data retur
// tableState = BTN_RETUR;
// System.out.println("ambil data retur");
// break;
// }
// }

for (Button button : navigasi) {
if (button.equals(buttonSource)) {
@@ -308,7 +258,6 @@ public class FormUtamaController implements Initializable {
dialogCariNotaTunda.initOwner(bpMain.getScene().getWindow());

Optional<String> result = dialogCariNotaTunda.showAndWait();
System.out.println(result);
};
listShortcuts.put(kcCariNotaTunda, rnCariNotaTunda);

@@ -318,7 +267,6 @@ public class FormUtamaController implements Initializable {
dialogCetakUlangNota.initOwner(bpMain.getScene().getWindow());

Optional<String> result = dialogCetakUlangNota.showAndWait();
System.out.println(result);
};
listShortcuts.put(kcCariCetakUlangNota, rnCetakUlangNota);

@@ -383,7 +331,6 @@ public class FormUtamaController implements Initializable {
Optional<String> hasilReturn = dialogTambahNota.showAndWait();

if (hasilReturn.isPresent() && hasilReturn.get().equals("Baru:Tunai")) {

Button buttonBaru = generateButtonNota("10-0220-0000X",
FormConstanta.TRANSAKSI_TUNAI,
Fucout.TIPE_NOTA_TUNAI);
@@ -391,7 +338,6 @@ public class FormUtamaController implements Initializable {
vbNavigasi.getChildren().add(buttonBaru);
jumlahNota++;
} else if (hasilReturn.isPresent() && hasilReturn.get().equals("Baru:Bon")) {

Button buttonBaru = generateButtonNota("10-0220-0000X",
FormConstanta.TRANSAKSI_BON,
Fucout.TIPE_NOTA_BON);
@@ -399,7 +345,6 @@ public class FormUtamaController implements Initializable {
vbNavigasi.getChildren().add(buttonBaru);
jumlahNota++;
} else if (hasilReturn.isPresent() && hasilReturn.get().equals("Baru:Bawa Dulu")) {

Button buttonBaru = generateButtonNota("10-0220-0000X",
FormConstanta.TRANSAKSI_BAWA,
Fucout.TIPE_NOTA_BAWA);
@@ -407,7 +352,6 @@ public class FormUtamaController implements Initializable {
vbNavigasi.getChildren().add(buttonBaru);
jumlahNota++;
} else if (hasilReturn.isPresent() && hasilReturn.get().equals("Baru:Retur")) {

Button buttonBaru = generateButtonNota("10-0220-0000X",
FormConstanta.TRANSAKSI_RETUR,
Fucout.TIPE_NOTA_RETUR);
@@ -415,18 +359,36 @@ public class FormUtamaController implements Initializable {
vbNavigasi.getChildren().add(buttonBaru);
jumlahNota++;
} else if (hasilReturn.isPresent() && hasilReturn.get().contains("Checkout:")) {
Button buttonBaru = generateButtonNota(hasilReturn.get().substring(9),
FormConstanta.TRANSAKSI_TUNAI,
Fucout.TIPE_NOTA_TUNAI);
navigasi.add(buttonBaru);
vbNavigasi.getChildren().add(buttonBaru);
jumlahNota++;
String noNota = hasilReturn.get().substring(9);
Button buttonBaru = null;
switch (noNota.charAt(0)) {
case Fucout.KODE_NOTA_BON:
break;
case Fucout.KODE_NOTA_BAWA:
break;
case Fucout.KODE_NOTA_RETUR:
buttonBaru = generateButtonNota(noNota,
FormConstanta.TRANSAKSI_RETUR,
Fucout.TIPE_NOTA_RETUR);
break;
default:
buttonBaru = generateButtonNota(noNota,
FormConstanta.TRANSAKSI_TUNAI,
Fucout.TIPE_NOTA_TUNAI);
break;
}
if (buttonBaru != null) {
navigasi.add(buttonBaru);
vbNavigasi.getChildren().add(buttonBaru);
jumlahNota++;
}
}
}

//scan member
@FXML
void scanMemberOnPressed(KeyEvent event) {
void scanMemberOnPressed(KeyEvent event
) {
if (event.getCode() == KeyCode.ENTER) {
posRx.getPelangganByKodeMember(tfScanMember.getText()).subscribe(pelangganObserver);
}
@@ -439,12 +401,6 @@ public class FormUtamaController implements Initializable {

@Override
public void onNext(Pelanggan p) {
ObjectMapper mapper = new ObjectMapper();
try {
System.out.println(mapper.writeValueAsString(p));
} catch (JsonProcessingException ex) {
Logger.getLogger(FormUtamaController.class.getName()).log(Level.SEVERE, null, ex);
}
if (p != null) {
SystemValue.isMember = true;
SystemValue.member = p;
@@ -464,10 +420,16 @@ public class FormUtamaController implements Initializable {
alert.initOwner(bpMain.getScene().getWindow());
alert.show();
}
} else if (error instanceof SocketTimeoutException) {
Alert alert = AlertUtil.getAlertError(
AlertUtil.ERROR_KONEKSI_TIMEOUT_TITLE,
AlertUtil.ERROR_KONEKSI_TIMEOUT_MESSAGE);
alert.initOwner(bpMain.getScene().getWindow());
alert.show();
} else {
Alert alert = AlertUtil.getAlertError(
AlertUtil.ERROR_TIDAK_TERDUGA_TITLE,
"Terjadi kesalahan yang tidak terduga.");
AlertUtil.ERROR_TIDAK_TERDUGA_MESSAGE);
alert.initOwner(bpMain.getScene().getWindow());
alert.show();
Logger.getLogger(FormUtamaController.class.getName()).log(Level.SEVERE, null, error);


+ 14
- 0
src/main/java/id/amigogroup/posterminal/api/AmigoPosRx.java Прегледај датотеку

@@ -6,6 +6,8 @@
package id.amigogroup.posterminal.api;

import id.amigogroup.posterminal.model.Karyawan;
import id.amigogroup.posterminal.model.MNotaRetur;
import id.amigogroup.posterminal.model.MNotaTunai;
import id.amigogroup.posterminal.model.Pelanggan;
import id.amigogroup.posterminal.model.Tas;
import io.reactivex.Observable;
@@ -16,14 +18,26 @@ import java.util.List;
* @author ronal
*/
public class AmigoPosRx {
//Barang API
public Observable<MNotaTunai> getMNotaTunaiByNoNota(String noNota){
return UtilsApi.getServiceApiBarang().getMNotaTunaiByNoNota(noNota);
}
public Observable<MNotaRetur> getMNotaReturByNoNota(String noNota){
return UtilsApi.getServiceApiBarang().getMNotaReturByNoNota(noNota);
}
//Checkin API
public Observable<List<Tas>> getAllTas(){
return UtilsApi.getServiceApiCheckin().getAllTas();
}
//Karyawan API
public Observable<Karyawan> getKaryawanByNik(String nik){
return UtilsApi.getServiceApiKaryawan().getKaryawanByNik(nik);
}
//Pelanggan API
public Observable<Pelanggan> getPelangganByKodeMember(String kodeMember){
return UtilsApi.getServiceApiPelanggan().getPelangganByKodeMember(kodeMember);
}


+ 20
- 0
src/main/java/id/amigogroup/posterminal/api/ServiceApiBarang.java Прегледај датотеку

@@ -5,10 +5,30 @@
*/
package id.amigogroup.posterminal.api;

import id.amigogroup.posterminal.model.MNotaRetur;
import id.amigogroup.posterminal.model.MNotaTunai;
import io.reactivex.Observable;
import retrofit2.http.GET;
import retrofit2.http.Path;

/**
*
* @author ronal
*/
public interface ServiceApiBarang {
//Mengambil Master Nota Tunai by No Nota
@GET("m-nota-tunai/no-nota/{noNota}")
Observable<MNotaTunai> getMNotaTunaiByNoNota(@Path("noNota") String noNota);
// //Mengambil Master Nota Bawa Dulu by No Nota
// @GET("m-nota-bawa/no-nota/{noNota}")
// Observable<MNotaTunai> getMNotaBawaByNoNota(@Path("noNota") String noNota);
//
// //Mengambil Master Nota Bon by No Nota
// @GET("m-nota-bon/no-nota/{noNota}")
// Observable<MNotaTunai> getMNotaBonByNoNota(@Path("noNota") String noNota);
//Mengambil Master Nota Retur by No Nota
@GET("m-nota-retur/no-nota/{noNota}")
Observable<MNotaRetur> getMNotaReturByNoNota(@Path("noNota") String noNota);
}

+ 42
- 15
src/main/java/id/amigogroup/posterminal/keamanan/FormLoginController.java Прегледај датотеку

@@ -11,9 +11,13 @@ import id.amigogroup.posterminal.model.Karyawan;
import id.amigogroup.posterminal.util.AlertUtil;
import id.amigogroup.posterminal.util.Fucout;
import io.reactivex.Observable;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.SocketTimeoutException;
import java.net.URL;
import java.net.UnknownHostException;
import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -69,8 +73,19 @@ public class FormLoginController implements Initializable {

@FXML
public void btnLoginOnAction(ActionEvent event) {
Observable<Karyawan> karyawanObs = posRx.getKaryawanByNik(fldNamaPengguna.getText());
karyawanObs.subscribe((k) -> {
if (!fldNamaPengguna.getText().equals("")) {
Observable<Karyawan> karyawanObs = posRx.getKaryawanByNik(fldNamaPengguna.getText());
karyawanObs.subscribe(karyawanLoginObserver);
}
}

Observer<Karyawan> karyawanLoginObserver = new Observer<>() {
@Override
public void onSubscribe(Disposable dspsbl) {
}

@Override
public void onNext(Karyawan k) {
//kasir, Asko produk, Asko SDM, Pemko
if (k != null && Fucout.isAllowedLogin(k.getIdPekerjaan())) {
SystemValue.karyawanLogin = k;
@@ -82,32 +97,44 @@ public class FormLoginController implements Initializable {
} catch (IOException ex) {
Logger.getLogger(FormLoginController.class.getName()).log(Level.SEVERE, null, ex);
}
}else{
} else {
Alert alert = AlertUtil.getAlertError(
"Error: Karyawan Tidak Boleh Akses",
"Karyawan dengan nomor tersebut tidak berwenang untuk mengakses aplikasi ini.");
alert.initOwner((Stage) apMain.getScene().getWindow());
alert.show();
"Error: Karyawan Tidak Boleh Akses",
"Karyawan dengan nomor tersebut tidak berwenang untuk mengakses aplikasi ini.");
alert.initOwner((Stage) apMain.getScene().getWindow());
alert.show();
}
}, error -> {
}

@Override
public void onError(Throwable error) {
if (error instanceof HttpException) {
switch (((HttpException) error).code()) {
case HttpURLConnection.HTTP_NOT_FOUND:
Alert alert = AlertUtil.getAlertError(
AlertUtil.ERROR_TIDAK_DITEMUKAN_TITLE,
"Karyawan dengan nomor tersebut tidak ditemukan.");
alert.initOwner((Stage) apMain.getScene().getWindow());
alert.initOwner(apMain.getScene().getWindow());
alert.show();
}
} else if (error instanceof SocketTimeoutException || error instanceof UnknownHostException) {
Alert alert = AlertUtil.getAlertError(
AlertUtil.ERROR_KONEKSI_TIMEOUT_TITLE,
AlertUtil.ERROR_KONEKSI_TIMEOUT_MESSAGE);
alert.initOwner(apMain.getScene().getWindow());
alert.show();
} else {
Alert alert = AlertUtil.getAlertError(
AlertUtil.ERROR_TIDAK_TERDUGA_TITLE,
"Terjadi kesalahan yang tidak terduga.");
alert.initOwner((Stage) apMain.getScene().getWindow());
alert.show();
AlertUtil.ERROR_TIDAK_TERDUGA_TITLE,
"Terjadi kesalahan yang tidak terduga.");
alert.initOwner(apMain.getScene().getWindow());
alert.show();
Logger.getLogger(FormLoginController.class.getName()).log(Level.SEVERE, null, error);
}
});
}
}

@Override
public void onComplete() {
}
};
}

+ 195
- 0
src/main/java/id/amigogroup/posterminal/model/Barang.java Прегледај датотеку

@@ -0,0 +1,195 @@

package id.amigogroup.posterminal.model;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"kode_barang",
"kode_lama",
"nama_barang",
"kode_toko",
"kelompok",
"tahun",
"bulan",
"id_gabungan",
"kode_strip",
"kode_supplier",
"ked_produk",
"kode_merk"
})
public class Barang {

@JsonProperty("kode_barang")
private String kodeBarang;
@JsonProperty("kode_lama")
private String kodeLama;
@JsonProperty("nama_barang")
private String namaBarang;
@JsonProperty("kode_toko")
private String kodeToko;
@JsonProperty("kelompok")
private String kelompok;
@JsonProperty("tahun")
private int tahun;
@JsonProperty("bulan")
private int bulan;
@JsonProperty("id_gabungan")
private String idGabungan;
@JsonProperty("kode_strip")
private String kodeStrip;
@JsonProperty("kode_supplier")
private String kodeSupplier;
@JsonProperty("ked_produk")
private String kedProduk;
@JsonProperty("kode_merk")
private String kodeMerk;

@JsonProperty("kode_barang")
public String getKodeBarang() {
return kodeBarang;
}

@JsonProperty("kode_barang")
public void setKodeBarang(String kodeBarang) {
this.kodeBarang = kodeBarang;
}

@JsonProperty("kode_lama")
public String getKodeLama() {
return kodeLama;
}

@JsonProperty("kode_lama")
public void setKodeLama(String kodeLama) {
this.kodeLama = kodeLama;
}

@JsonProperty("nama_barang")
public String getNamaBarang() {
return namaBarang;
}

@JsonProperty("nama_barang")
public void setNamaBarang(String namaBarang) {
this.namaBarang = namaBarang;
}

@JsonProperty("kode_toko")
public String getKodeToko() {
return kodeToko;
}

@JsonProperty("kode_toko")
public void setKodeToko(String kodeToko) {
this.kodeToko = kodeToko;
}

@JsonProperty("kelompok")
public String getKelompok() {
return kelompok;
}

@JsonProperty("kelompok")
public void setKelompok(String kelompok) {
this.kelompok = kelompok;
}

@JsonProperty("tahun")
public int getTahun() {
return tahun;
}

@JsonProperty("tahun")
public void setTahun(int tahun) {
this.tahun = tahun;
}

@JsonProperty("bulan")
public int getBulan() {
return bulan;
}

@JsonProperty("bulan")
public void setBulan(int bulan) {
this.bulan = bulan;
}

@JsonProperty("id_gabungan")
public String getIdGabungan() {
return idGabungan;
}

@JsonProperty("id_gabungan")
public void setIdGabungan(String idGabungan) {
this.idGabungan = idGabungan;
}

@JsonProperty("kode_strip")
public String getKodeStrip() {
return kodeStrip;
}

@JsonProperty("kode_strip")
public void setKodeStrip(String kodeStrip) {
this.kodeStrip = kodeStrip;
}

@JsonProperty("kode_supplier")
public String getKodeSupplier() {
return kodeSupplier;
}

@JsonProperty("kode_supplier")
public void setKodeSupplier(String kodeSupplier) {
this.kodeSupplier = kodeSupplier;
}

@JsonProperty("ked_produk")
public String getKedProduk() {
return kedProduk;
}

@JsonProperty("ked_produk")
public void setKedProduk(String kedProduk) {
this.kedProduk = kedProduk;
}

@JsonProperty("kode_merk")
public String getKodeMerk() {
return kodeMerk;
}

@JsonProperty("kode_merk")
public void setKodeMerk(String kodeMerk) {
this.kodeMerk = kodeMerk;
}

@Override
public String toString() {
return new ToStringBuilder(this).append("kodeBarang", kodeBarang).append("kodeLama", kodeLama).append("namaBarang", namaBarang).append("kodeToko", kodeToko).append("kelompok", kelompok).append("tahun", tahun).append("bulan", bulan).append("idGabungan", idGabungan).append("kodeStrip", kodeStrip).append("kodeSupplier", kodeSupplier).append("kedProduk", kedProduk).append("kodeMerk", kodeMerk).toString();
}

@Override
public int hashCode() {
return new HashCodeBuilder().append(tahun).append(kodeLama).append(idGabungan).append(kodeToko).append(kedProduk).append(namaBarang).append(kelompok).append(kodeBarang).append(bulan).append(kodeStrip).append(kodeSupplier).append(kodeMerk).toHashCode();
}

@Override
public boolean equals(Object other) {
if (other == this) {
return true;
}
if ((other instanceof Barang) == false) {
return false;
}
Barang rhs = ((Barang) other);
return new EqualsBuilder().append(tahun, rhs.tahun).append(kodeLama, rhs.kodeLama).append(idGabungan, rhs.idGabungan).append(kodeToko, rhs.kodeToko).append(kedProduk, rhs.kedProduk).append(namaBarang, rhs.namaBarang).append(kelompok, rhs.kelompok).append(kodeBarang, rhs.kodeBarang).append(bulan, rhs.bulan).append(kodeStrip, rhs.kodeStrip).append(kodeSupplier, rhs.kodeSupplier).append(kodeMerk, rhs.kodeMerk).isEquals();
}

}

+ 182
- 0
src/main/java/id/amigogroup/posterminal/model/DNotaTunai.java Прегледај датотеку

@@ -0,0 +1,182 @@

package id.amigogroup.posterminal.model;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"id",
"no_nota",
"kd_barang",
"no_barang",
"jumlah",
"diskon",
"diskon2",
"harga_jual",
"harga_pokok",
"kode_pram",
"bonus"
})
public class DNotaTunai {

@JsonProperty("id")
private int id;
@JsonProperty("no_nota")
private String noNota;
@JsonProperty("kd_barang")
private String kdBarang;
@JsonProperty("no_barang")
private String noBarang;
@JsonProperty("jumlah")
private int jumlah;
@JsonProperty("diskon")
private int diskon;
@JsonProperty("diskon2")
private int diskon2;
@JsonProperty("harga_jual")
private int hargaJual;
@JsonProperty("harga_pokok")
private String hargaPokok;
@JsonProperty("kode_pram")
private String kodePram;
@JsonProperty("bonus")
private int bonus;

@JsonProperty("id")
public int getId() {
return id;
}

@JsonProperty("id")
public void setId(int id) {
this.id = id;
}

@JsonProperty("no_nota")
public String getNoNota() {
return noNota;
}

@JsonProperty("no_nota")
public void setNoNota(String noNota) {
this.noNota = noNota;
}

@JsonProperty("kd_barang")
public String getKdBarang() {
return kdBarang;
}

@JsonProperty("kd_barang")
public void setKdBarang(String kdBarang) {
this.kdBarang = kdBarang;
}

@JsonProperty("no_barang")
public String getNoBarang() {
return noBarang;
}

@JsonProperty("no_barang")
public void setNoBarang(String noBarang) {
this.noBarang = noBarang;
}

@JsonProperty("jumlah")
public int getJumlah() {
return jumlah;
}

@JsonProperty("jumlah")
public void setJumlah(int jumlah) {
this.jumlah = jumlah;
}

@JsonProperty("diskon")
public int getDiskon() {
return diskon;
}

@JsonProperty("diskon")
public void setDiskon(int diskon) {
this.diskon = diskon;
}

@JsonProperty("diskon2")
public int getDiskon2() {
return diskon2;
}

@JsonProperty("diskon2")
public void setDiskon2(int diskon2) {
this.diskon2 = diskon2;
}

@JsonProperty("harga_jual")
public int getHargaJual() {
return hargaJual;
}

@JsonProperty("harga_jual")
public void setHargaJual(int hargaJual) {
this.hargaJual = hargaJual;
}

@JsonProperty("harga_pokok")
public String getHargaPokok() {
return hargaPokok;
}

@JsonProperty("harga_pokok")
public void setHargaPokok(String hargaPokok) {
this.hargaPokok = hargaPokok;
}

@JsonProperty("kode_pram")
public String getKodePram() {
return kodePram;
}

@JsonProperty("kode_pram")
public void setKodePram(String kodePram) {
this.kodePram = kodePram;
}

@JsonProperty("bonus")
public int getBonus() {
return bonus;
}

@JsonProperty("bonus")
public void setBonus(int bonus) {
this.bonus = bonus;
}

@Override
public String toString() {
return new ToStringBuilder(this).append("id", id).append("noNota", noNota).append("kdBarang", kdBarang).append("noBarang", noBarang).append("jumlah", jumlah).append("diskon", diskon).append("diskon2", diskon2).append("hargaJual", hargaJual).append("hargaPokok", hargaPokok).append("kodePram", kodePram).append("bonus", bonus).toString();
}

@Override
public int hashCode() {
return new HashCodeBuilder().append(jumlah).append(diskon2).append(bonus).append(kdBarang).append(hargaPokok).append(kodePram).append(noNota).append(noBarang).append(id).append(hargaJual).append(diskon).toHashCode();
}

@Override
public boolean equals(Object other) {
if (other == this) {
return true;
}
if ((other instanceof DNotaTunai) == false) {
return false;
}
DNotaTunai rhs = ((DNotaTunai) other);
return new EqualsBuilder().append(jumlah, rhs.jumlah).append(diskon2, rhs.diskon2).append(bonus, rhs.bonus).append(kdBarang, rhs.kdBarang).append(hargaPokok, rhs.hargaPokok).append(kodePram, rhs.kodePram).append(noNota, rhs.noNota).append(noBarang, rhs.noBarang).append(id, rhs.id).append(hargaJual, rhs.hargaJual).append(diskon, rhs.diskon).isEquals();
}

}

+ 143
- 0
src/main/java/id/amigogroup/posterminal/model/MNotaRetur.java Прегледај датотеку

@@ -0,0 +1,143 @@

package id.amigogroup.posterminal.model;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"no_nota",
"tgl_nota",
"kd_customer",
"jumlah_total",
"kasir",
"total_diskon",
"keterangan",
"status_nota"
})
public class MNotaRetur {

@JsonProperty("no_nota")
private String noNota;
@JsonProperty("tgl_nota")
private String tglNota;
@JsonProperty("kd_customer")
private String kdCustomer;
@JsonProperty("jumlah_total")
private int jumlahTotal;
@JsonProperty("kasir")
private String kasir;
@JsonProperty("total_diskon")
private int totalDiskon;
@JsonProperty("keterangan")
private String keterangan;
@JsonProperty("status_nota")
private String statusNota;

@JsonProperty("no_nota")
public String getNoNota() {
return noNota;
}

@JsonProperty("no_nota")
public void setNoNota(String noNota) {
this.noNota = noNota;
}

@JsonProperty("tgl_nota")
public String getTglNota() {
return tglNota;
}

@JsonProperty("tgl_nota")
public void setTglNota(String tglNota) {
this.tglNota = tglNota;
}

@JsonProperty("kd_customer")
public String getKdCustomer() {
return kdCustomer;
}

@JsonProperty("kd_customer")
public void setKdCustomer(String kdCustomer) {
this.kdCustomer = kdCustomer;
}

@JsonProperty("jumlah_total")
public int getJumlahTotal() {
return jumlahTotal;
}

@JsonProperty("jumlah_total")
public void setJumlahTotal(int jumlahTotal) {
this.jumlahTotal = jumlahTotal;
}

@JsonProperty("kasir")
public String getKasir() {
return kasir;
}

@JsonProperty("kasir")
public void setKasir(String kasir) {
this.kasir = kasir;
}

@JsonProperty("total_diskon")
public int getTotalDiskon() {
return totalDiskon;
}

@JsonProperty("total_diskon")
public void setTotalDiskon(int totalDiskon) {
this.totalDiskon = totalDiskon;
}

@JsonProperty("keterangan")
public String getKeterangan() {
return keterangan;
}

@JsonProperty("keterangan")
public void setKeterangan(String keterangan) {
this.keterangan = keterangan;
}

@JsonProperty("status_nota")
public String getStatusNota() {
return statusNota;
}

@JsonProperty("status_nota")
public void setStatusNota(String statusNota) {
this.statusNota = statusNota;
}

@Override
public String toString() {
return new ToStringBuilder(this).append("noNota", noNota).append("tglNota", tglNota).append("kdCustomer", kdCustomer).append("jumlahTotal", jumlahTotal).append("kasir", kasir).append("totalDiskon", totalDiskon).append("keterangan", keterangan).append("statusNota", statusNota).toString();
}

@Override
public int hashCode() {
return new HashCodeBuilder().append(keterangan).append(totalDiskon).append(statusNota).append(kasir).append(noNota).append(tglNota).append(kdCustomer).append(jumlahTotal).toHashCode();
}

@Override
public boolean equals(Object other) {
if (other == this) {
return true;
}
if ((other instanceof MNotaRetur) == false) {
return false;
}
MNotaRetur rhs = ((MNotaRetur) other);
return new EqualsBuilder().append(keterangan, rhs.keterangan).append(totalDiskon, rhs.totalDiskon).append(statusNota, rhs.statusNota).append(kasir, rhs.kasir).append(noNota, rhs.noNota).append(tglNota, rhs.tglNota).append(kdCustomer, rhs.kdCustomer).append(jumlahTotal, rhs.jumlahTotal).isEquals();
}

}

+ 299
- 0
src/main/java/id/amigogroup/posterminal/model/MNotaTunai.java Прегледај датотеку

@@ -0,0 +1,299 @@

package id.amigogroup.posterminal.model;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"no_nota",
"nota_lama",
"tgl_nota",
"kd_customer",
"jumlah_total",
"kasir",
"total_uang",
"total_diskon",
"status_bayar",
"bank",
"edc",
"no_kartu",
"no_validasi_bank",
"status_nota",
"no_nota_retur",
"jumlah_total_retur",
"jenis_diskon",
"jenis_hadiah",
"tgl_ambilhadiah",
"user_ambilhadiah"
})
public class MNotaTunai {

@JsonProperty("no_nota")
private String noNota;
@JsonProperty("nota_lama")
private Object notaLama;
@JsonProperty("tgl_nota")
private String tglNota;
@JsonProperty("kd_customer")
private String kdCustomer;
@JsonProperty("jumlah_total")
private int jumlahTotal;
@JsonProperty("kasir")
private String kasir;
@JsonProperty("total_uang")
private int totalUang;
@JsonProperty("total_diskon")
private int totalDiskon;
@JsonProperty("status_bayar")
private String statusBayar;
@JsonProperty("bank")
private Object bank;
@JsonProperty("edc")
private Object edc;
@JsonProperty("no_kartu")
private Object noKartu;
@JsonProperty("no_validasi_bank")
private Object noValidasiBank;
@JsonProperty("status_nota")
private String statusNota;
@JsonProperty("no_nota_retur")
private String noNotaRetur;
@JsonProperty("jumlah_total_retur")
private int jumlahTotalRetur;
@JsonProperty("jenis_diskon")
private Object jenisDiskon;
@JsonProperty("jenis_hadiah")
private Object jenisHadiah;
@JsonProperty("tgl_ambilhadiah")
private Object tglAmbilhadiah;
@JsonProperty("user_ambilhadiah")
private Object userAmbilhadiah;

@JsonProperty("no_nota")
public String getNoNota() {
return noNota;
}

@JsonProperty("no_nota")
public void setNoNota(String noNota) {
this.noNota = noNota;
}

@JsonProperty("nota_lama")
public Object getNotaLama() {
return notaLama;
}

@JsonProperty("nota_lama")
public void setNotaLama(Object notaLama) {
this.notaLama = notaLama;
}

@JsonProperty("tgl_nota")
public String getTglNota() {
return tglNota;
}

@JsonProperty("tgl_nota")
public void setTglNota(String tglNota) {
this.tglNota = tglNota;
}

@JsonProperty("kd_customer")
public String getKdCustomer() {
return kdCustomer;
}

@JsonProperty("kd_customer")
public void setKdCustomer(String kdCustomer) {
this.kdCustomer = kdCustomer;
}

@JsonProperty("jumlah_total")
public int getJumlahTotal() {
return jumlahTotal;
}

@JsonProperty("jumlah_total")
public void setJumlahTotal(int jumlahTotal) {
this.jumlahTotal = jumlahTotal;
}

@JsonProperty("kasir")
public String getKasir() {
return kasir;
}

@JsonProperty("kasir")
public void setKasir(String kasir) {
this.kasir = kasir;
}

@JsonProperty("total_uang")
public int getTotalUang() {
return totalUang;
}

@JsonProperty("total_uang")
public void setTotalUang(int totalUang) {
this.totalUang = totalUang;
}

@JsonProperty("total_diskon")
public int getTotalDiskon() {
return totalDiskon;
}

@JsonProperty("total_diskon")
public void setTotalDiskon(int totalDiskon) {
this.totalDiskon = totalDiskon;
}

@JsonProperty("status_bayar")
public String getStatusBayar() {
return statusBayar;
}

@JsonProperty("status_bayar")
public void setStatusBayar(String statusBayar) {
this.statusBayar = statusBayar;
}

@JsonProperty("bank")
public Object getBank() {
return bank;
}

@JsonProperty("bank")
public void setBank(Object bank) {
this.bank = bank;
}

@JsonProperty("edc")
public Object getEdc() {
return edc;
}

@JsonProperty("edc")
public void setEdc(Object edc) {
this.edc = edc;
}

@JsonProperty("no_kartu")
public Object getNoKartu() {
return noKartu;
}

@JsonProperty("no_kartu")
public void setNoKartu(Object noKartu) {
this.noKartu = noKartu;
}

@JsonProperty("no_validasi_bank")
public Object getNoValidasiBank() {
return noValidasiBank;
}

@JsonProperty("no_validasi_bank")
public void setNoValidasiBank(Object noValidasiBank) {
this.noValidasiBank = noValidasiBank;
}

@JsonProperty("status_nota")
public String getStatusNota() {
return statusNota;
}

@JsonProperty("status_nota")
public void setStatusNota(String statusNota) {
this.statusNota = statusNota;
}

@JsonProperty("no_nota_retur")
public String getNoNotaRetur() {
return noNotaRetur;
}

@JsonProperty("no_nota_retur")
public void setNoNotaRetur(String noNotaRetur) {
this.noNotaRetur = noNotaRetur;
}

@JsonProperty("jumlah_total_retur")
public int getJumlahTotalRetur() {
return jumlahTotalRetur;
}

@JsonProperty("jumlah_total_retur")
public void setJumlahTotalRetur(int jumlahTotalRetur) {
this.jumlahTotalRetur = jumlahTotalRetur;
}

@JsonProperty("jenis_diskon")
public Object getJenisDiskon() {
return jenisDiskon;
}

@JsonProperty("jenis_diskon")
public void setJenisDiskon(Object jenisDiskon) {
this.jenisDiskon = jenisDiskon;
}

@JsonProperty("jenis_hadiah")
public Object getJenisHadiah() {
return jenisHadiah;
}

@JsonProperty("jenis_hadiah")
public void setJenisHadiah(Object jenisHadiah) {
this.jenisHadiah = jenisHadiah;
}

@JsonProperty("tgl_ambilhadiah")
public Object getTglAmbilhadiah() {
return tglAmbilhadiah;
}

@JsonProperty("tgl_ambilhadiah")
public void setTglAmbilhadiah(Object tglAmbilhadiah) {
this.tglAmbilhadiah = tglAmbilhadiah;
}

@JsonProperty("user_ambilhadiah")
public Object getUserAmbilhadiah() {
return userAmbilhadiah;
}

@JsonProperty("user_ambilhadiah")
public void setUserAmbilhadiah(Object userAmbilhadiah) {
this.userAmbilhadiah = userAmbilhadiah;
}

@Override
public String toString() {
return new ToStringBuilder(this).append("noNota", noNota).append("notaLama", notaLama).append("tglNota", tglNota).append("kdCustomer", kdCustomer).append("jumlahTotal", jumlahTotal).append("kasir", kasir).append("totalUang", totalUang).append("totalDiskon", totalDiskon).append("statusBayar", statusBayar).append("bank", bank).append("edc", edc).append("noKartu", noKartu).append("noValidasiBank", noValidasiBank).append("statusNota", statusNota).append("noNotaRetur", noNotaRetur).append("jumlahTotalRetur", jumlahTotalRetur).append("jenisDiskon", jenisDiskon).append("jenisHadiah", jenisHadiah).append("tglAmbilhadiah", tglAmbilhadiah).append("userAmbilhadiah", userAmbilhadiah).toString();
}

@Override
public int hashCode() {
return new HashCodeBuilder().append(edc).append(statusNota).append(jumlahTotalRetur).append(tglAmbilhadiah).append(tglNota).append(noNotaRetur).append(userAmbilhadiah).append(noValidasiBank).append(bank).append(notaLama).append(totalDiskon).append(kasir).append(noNota).append(statusBayar).append(noKartu).append(jenisDiskon).append(jenisHadiah).append(kdCustomer).append(jumlahTotal).append(totalUang).toHashCode();
}

@Override
public boolean equals(Object other) {
if (other == this) {
return true;
}
if ((other instanceof MNotaTunai) == false) {
return false;
}
MNotaTunai rhs = ((MNotaTunai) other);
return new EqualsBuilder().append(edc, rhs.edc).append(statusNota, rhs.statusNota).append(jumlahTotalRetur, rhs.jumlahTotalRetur).append(tglAmbilhadiah, rhs.tglAmbilhadiah).append(tglNota, rhs.tglNota).append(noNotaRetur, rhs.noNotaRetur).append(userAmbilhadiah, rhs.userAmbilhadiah).append(noValidasiBank, rhs.noValidasiBank).append(bank, rhs.bank).append(notaLama, rhs.notaLama).append(totalDiskon, rhs.totalDiskon).append(kasir, rhs.kasir).append(noNota, rhs.noNota).append(statusBayar, rhs.statusBayar).append(noKartu, rhs.noKartu).append(jenisDiskon, rhs.jenisDiskon).append(jenisHadiah, rhs.jenisHadiah).append(kdCustomer, rhs.kdCustomer).append(jumlahTotal, rhs.jumlahTotal).append(totalUang, rhs.totalUang).isEquals();
}

}

+ 60
- 0
src/main/java/id/amigogroup/posterminal/transaksi/DetailTransaksi.java Прегледај датотеку

@@ -0,0 +1,60 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package id.amigogroup.posterminal.transaksi;

import id.amigogroup.posterminal.model.Barang;

/**
*
* @author ronal
*/
public class DetailTransaksi<T,U> {
private T masterNota;
private U detailNota;
private Barang barang;

/**
* @return the masterNota
*/
public T getMasterNota() {
return masterNota;
}

/**
* @param masterNota the masterNota to set
*/
public void setMasterNota(T masterNota) {
this.masterNota = masterNota;
}

/**
* @return the detailNota
*/
public U getDetailNota() {
return detailNota;
}

/**
* @param detailNota the detailNota to set
*/
public void setDetailNota(U detailNota) {
this.detailNota = detailNota;
}

/**
* @return the barang
*/
public Barang getBarang() {
return barang;
}

/**
* @param barang the barang to set
*/
public void setBarang(Barang barang) {
this.barang = barang;
}
}

+ 170
- 103
src/main/java/id/amigogroup/posterminal/transaksi/DialogTambahNotaController.java Прегледај датотеку

@@ -1,103 +1,170 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package id.amigogroup.posterminal.transaksi;
import java.io.IOException;
import java.net.URL;
import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.Parent;
import javafx.scene.control.ButtonType;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Dialog;
import javafx.scene.control.RadioButton;
import javafx.scene.control.TextField;
import javafx.scene.control.ToggleGroup;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Window;
/**
*
* @author Josua
*/
public class DialogTambahNotaController extends Dialog<String> implements Initializable {
@FXML
private AnchorPane apTambahNota;
@FXML
private ToggleGroup tgTipe;
@FXML
private RadioButton rbBaru;
@FXML
private ComboBox<String> cbxPilihNota;
@FXML
private RadioButton rbAmbilDariCheckout;
@FXML
private TextField tfAmbilDariCheckout;
public static final ButtonType btnLanjutkan = new ButtonType("Lanjutkan");
public static final ButtonType btnBatal = new ButtonType("Batal");
@Override
public void initialize(URL url, ResourceBundle rb) {
cbxPilihNota.getItems().setAll(
"Tunai",
"Bon",
"Bawa Dulu",
"Retur"
);
}
public DialogTambahNotaController() {
try {
Window window = getDialogPane().getScene().getWindow();
window.setOnCloseRequest(event -> this.close());
FXMLLoader loader = new FXMLLoader(getClass().getResource("/fxml/DialogTambahNota.fxml"));
loader.setController(this);
// DialogCariBarangController controller = loader.<DialogCariBarangController>getController();
Parent root = loader.load();
getDialogPane().setContent(root);
getDialogPane().getButtonTypes().add(btnBatal);
getDialogPane().getButtonTypes().add(btnLanjutkan);
setResultConverter(buttonType -> {
if (buttonType == btnLanjutkan) {
//radio button mana yang dipilih
if (((RadioButton) tgTipe.getSelectedToggle()) == rbBaru) {
return "Baru:" + cbxPilihNota.getValue();
} else if (((RadioButton) tgTipe.getSelectedToggle()) == rbAmbilDariCheckout) {
return "Checkout:" + tfAmbilDariCheckout.getText();
}
//baru, balikin tipe yang dipilih
//dari checkout, balikin isi nomor nota (hanya jika nota ditemukan)
}
return "Batal";
});
setTitle("Tambah Nota");
} catch (IOException ex) {
Logger.getLogger(DialogKonfirmasiReturController.class.getName()).log(Level.SEVERE, null, ex);
}
}
@FXML
void rbNotaBaruOnAction(ActionEvent event) {
cbxPilihNota.setDisable(false);
tfAmbilDariCheckout.setDisable(true);
}
@FXML
void rbAmbilDariCheckoutOnAction(ActionEvent event) {
cbxPilihNota.setDisable(true);
tfAmbilDariCheckout.setDisable(false);
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package id.amigogroup.posterminal.transaksi;

import id.amigogroup.posterminal.api.AmigoPosRx;
import id.amigogroup.posterminal.model.MNotaRetur;
import id.amigogroup.posterminal.model.MNotaTunai;
import id.amigogroup.posterminal.util.AlertUtil;
import id.amigogroup.posterminal.util.Fucout;
import io.reactivex.Observable;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.Parent;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.ButtonType;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Dialog;
import javafx.scene.control.RadioButton;
import javafx.scene.control.TextField;
import javafx.scene.control.ToggleGroup;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Modality;
import javafx.stage.Window;
import retrofit2.HttpException;

/**
*
* @author Josua
*/
public class DialogTambahNotaController extends Dialog<String> implements Initializable {

@FXML
private AnchorPane apTambahNota;
@FXML
private ToggleGroup tgTipe;
@FXML
private RadioButton rbBaru;
@FXML
private ComboBox<String> cbxPilihNota;
@FXML
private RadioButton rbAmbilDariCheckout;
@FXML
private TextField tfAmbilDariCheckout;

private AmigoPosRx posRx = new AmigoPosRx();
public static final ButtonType btnLanjutkan = new ButtonType("Lanjutkan");
public static final ButtonType btnBatal = new ButtonType("Batal");

@Override
public void initialize(URL url, ResourceBundle rb) {
cbxPilihNota.getItems().setAll(
"Tunai",
"Bon",
"Bawa Dulu",
"Retur"
);
}

public DialogTambahNotaController() {
try {
Window window = getDialogPane().getScene().getWindow();
window.setOnCloseRequest(event -> this.close());

FXMLLoader loader = new FXMLLoader(getClass().getResource("/fxml/DialogTambahNota.fxml"));
loader.setController(this);
// DialogCariBarangController controller = loader.<DialogCariBarangController>getController();

Parent root = loader.load();
getDialogPane().setContent(root);

getDialogPane().getButtonTypes().add(btnBatal);
getDialogPane().getButtonTypes().add(btnLanjutkan);

Button btnLanjutkanR = (Button) getDialogPane().lookupButton(btnLanjutkan);
btnLanjutkanR.addEventFilter(ActionEvent.ACTION, event -> {
if (((RadioButton) tgTipe.getSelectedToggle()) == rbAmbilDariCheckout) {
boolean notaExists = false;
try {
switch (tfAmbilDariCheckout.getText().charAt(0)) {
case Fucout.KODE_NOTA_BON:
break;
case Fucout.KODE_NOTA_BAWA:
break;
case Fucout.KODE_NOTA_RETUR:
Observable<MNotaRetur> mNotaReturObservable
= posRx.getMNotaReturByNoNota(tfAmbilDariCheckout.getText());
MNotaRetur resultMNotaRetur
= mNotaReturObservable.blockingFirst();
if (resultMNotaRetur != null) {
notaExists = true;
}
break;
default:
Observable<MNotaTunai> mNotaTunaiObservable
= posRx.getMNotaTunaiByNoNota(tfAmbilDariCheckout.getText());
MNotaTunai resultMNotaTunai
= mNotaTunaiObservable.blockingFirst();
if (resultMNotaTunai != null) {
notaExists = true;
}
break;
}
} catch (HttpException he) {
switch (he.code()) {
case HttpURLConnection.HTTP_NOT_FOUND:
Alert alert = AlertUtil.getAlertError(
AlertUtil.ERROR_TIDAK_DITEMUKAN_TITLE,
"Data nota dengan nomor tersebut tidak ditemukan");
alert.initOwner(apTambahNota.getScene().getWindow());
alert.initModality(Modality.APPLICATION_MODAL);
alert.show();
}
} catch (Exception e) {
Alert alert = AlertUtil.getAlertError(
AlertUtil.ERROR_TIDAK_TERDUGA_TITLE,
AlertUtil.ERROR_TIDAK_TERDUGA_MESSAGE);
alert.initOwner(apTambahNota.getScene().getWindow());
alert.initModality(Modality.APPLICATION_MODAL);
alert.show();

Logger.getLogger(DialogTambahNotaController.class.getName()).log(Level.SEVERE, null, e);
}

if (!notaExists) {
event.consume();
}
}
});

setResultConverter(buttonType -> {
if (buttonType == btnLanjutkan) {
//radio button mana yang dipilih
if (((RadioButton) tgTipe.getSelectedToggle()) == rbBaru) {
return "Baru:" + cbxPilihNota.getValue();
} else if (((RadioButton) tgTipe.getSelectedToggle()) == rbAmbilDariCheckout) {
return "Checkout:" + tfAmbilDariCheckout.getText();
}
}
return "Batal";
});
setTitle("Tambah Nota");
} catch (IOException ex) {
Logger.getLogger(DialogKonfirmasiReturController.class.getName()).log(Level.SEVERE, null, ex);
}
}

@FXML
void rbNotaBaruOnAction(ActionEvent event) {
cbxPilihNota.setDisable(false);
tfAmbilDariCheckout.setDisable(true);
}

@FXML
void rbAmbilDariCheckoutOnAction(ActionEvent event) {
cbxPilihNota.setDisable(true);
tfAmbilDariCheckout.setDisable(false);
}
}

+ 3
- 0
src/main/java/id/amigogroup/posterminal/util/AlertUtil.java Прегледај датотеку

@@ -17,6 +17,9 @@ import javafx.scene.image.ImageView;
public class AlertUtil {
public static final String ERROR_TIDAK_DITEMUKAN_TITLE = "Error: Data Tidak Ditemukan";
public static final String ERROR_TIDAK_TERDUGA_TITLE = "Error: Terjadi Kesalahan";
public static final String ERROR_TIDAK_TERDUGA_MESSAGE = "Terjadi kesalahan yang tidak terduga.";
public static final String ERROR_KONEKSI_TIMEOUT_TITLE = "Error: Timeout - Koneksi Gagal";
public static final String ERROR_KONEKSI_TIMEOUT_MESSAGE = "Koneksi ke server mengalami kegagalan.";
public static Alert getAlertError(String title, String message){
Alert alert = new Alert(Alert.AlertType.ERROR, message, ButtonType.OK);


+ 3
- 0
src/main/java/id/amigogroup/posterminal/util/Fucout.java Прегледај датотеку

@@ -33,6 +33,9 @@ public class Fucout {
public static final String TIPE_NOTA_RETUR = "Retur";

//VALUES
public static final char KODE_NOTA_BON = 'B';
public static final char KODE_NOTA_BAWA = 'W';
public static final char KODE_NOTA_RETUR = 'R';
public static final int KONVERSI_POIN = 100000;

//IMAGES URL


+ 1
- 4
src/main/resources/fxml/FormUtama.fxml Прегледај датотеку

@@ -81,7 +81,7 @@
</GridPane>
</bottom>
<left>
<SplitPane dividerPositions="0.45" orientation="VERTICAL" prefWidth="200.0">
<SplitPane dividerPositions="0.5" orientation="VERTICAL" prefWidth="200.0">
<items>
<ScrollPane fx:id="spNavigasi" fitToHeight="true" fitToWidth="true" style="-fx-background-color: transparent;">
<content>
@@ -101,9 +101,6 @@
<Insets bottom="9.0" right="5.0" top="14.0" />
</VBox.margin>
</Button>
<Button fx:id="btnTunai1Static" maxWidth="1.7976931348623157E308" mnemonicParsing="false" styleClass="button-navigasi-transaksi" text="Tunai: 03-0120-00001" />
<Button fx:id="btnRetur1Static" maxWidth="1.7976931348623157E308" mnemonicParsing="false" styleClass="button-navigasi-transaksi" text="Retur: R-03-0120-00001" />
<Button fx:id="btnTunai2Static" maxWidth="1.7976931348623157E308" mnemonicParsing="false" styleClass="button-navigasi-transaksi" text="Tunai: 03-0120-00002" />
</children>
<padding>
<Insets left="5.0" />


Loading…
Откажи
Сачувај