Aplikasi POS Amigo, dibangun dengan JavaFX dengan Maven
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

223 lines
8.5 KiB

  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package id.amigogroup.posterminal.pencarian;
  7. import id.amigogroup.posterminal.transaksi.TabelBarangRetur;
  8. import id.amigogroup.posterminal.transaksi.TabelBarangTunai;
  9. import id.amigogroup.posterminal.util.Fucout;
  10. import java.io.IOException;
  11. import java.net.URL;
  12. import java.util.ResourceBundle;
  13. import java.util.logging.Level;
  14. import java.util.logging.Logger;
  15. import javafx.beans.property.ReadOnlyObjectWrapper;
  16. import javafx.collections.FXCollections;
  17. import javafx.collections.ObservableList;
  18. import javafx.fxml.FXML;
  19. import javafx.fxml.FXMLLoader;
  20. import javafx.fxml.Initializable;
  21. import javafx.scene.Parent;
  22. import javafx.scene.control.ButtonBar.ButtonData;
  23. import javafx.scene.control.ButtonType;
  24. import javafx.scene.control.Dialog;
  25. import javafx.scene.control.ScrollPane;
  26. import javafx.scene.control.TableColumn;
  27. import javafx.scene.control.TableView;
  28. import javafx.scene.control.TitledPane;
  29. import javafx.scene.control.cell.PropertyValueFactory;
  30. import javafx.scene.layout.AnchorPane;
  31. import javafx.scene.layout.VBox;
  32. import javafx.stage.Window;
  33. /**
  34. *
  35. * @author Josua
  36. */
  37. public class DialogCetakNotaController extends Dialog<String> implements Initializable {
  38. @FXML
  39. private ScrollPane spCetakNota;
  40. @FXML
  41. private VBox vbCetakNota;
  42. @FXML
  43. private TitledPane tpTunai;
  44. @FXML
  45. private AnchorPane apTunai;
  46. @FXML
  47. private TableView<TabelBarangTunai> tbvTunai;
  48. @FXML
  49. private TableColumn<TabelBarangTunai, Integer> tcNoTunai;
  50. @FXML
  51. private TableColumn<TabelBarangTunai, String> tcKodeBarangTunai;
  52. @FXML
  53. private TableColumn<TabelBarangTunai, String> tcNamaBarangTunai;
  54. @FXML
  55. private TableColumn<TabelBarangTunai, String> tcUkurTunai;
  56. @FXML
  57. private TableColumn<TabelBarangTunai, String> tcJumlahTunai;
  58. @FXML
  59. private TableColumn<TabelBarangTunai, String> tcHargaTunai;
  60. @FXML
  61. private TableColumn<TabelBarangTunai, String> tcDisc1Tunai;
  62. @FXML
  63. private TableColumn<TabelBarangTunai, String> tcDisc2Tunai;
  64. @FXML
  65. private TableColumn<TabelBarangTunai, String> tcSubTotalTunai;
  66. @FXML
  67. private TableColumn<TabelBarangTunai, String> tcPramuniagaTunai;
  68. @FXML
  69. private TitledPane tpBawa;
  70. @FXML
  71. private AnchorPane apBawa;
  72. @FXML
  73. private TableView<?> tbvBawa;
  74. @FXML
  75. private TableColumn<?, ?> tcNoBawa;
  76. @FXML
  77. private TableColumn<?, ?> tcKodeBarangBawa;
  78. @FXML
  79. private TableColumn<?, ?> tcNamaBarangBawa;
  80. @FXML
  81. private TableColumn<?, ?> tcUkurBawa;
  82. @FXML
  83. private TableColumn<?, ?> tcJumlahBawa;
  84. @FXML
  85. private TableColumn<?, ?> tcHargaBawa;
  86. @FXML
  87. private TableColumn<?, ?> tcDisc1Bawa;
  88. @FXML
  89. private TableColumn<?, ?> tcDisc2Bawa;
  90. @FXML
  91. private TableColumn<?, ?> tcSubTotalBawa;
  92. @FXML
  93. private TableColumn<?, ?> tcPramuniagaBawa;
  94. @FXML
  95. private TitledPane tpBon;
  96. @FXML
  97. private AnchorPane apBon;
  98. @FXML
  99. private TableView<?> tbvBon;
  100. @FXML
  101. private TableColumn<?, ?> tcNoBon;
  102. @FXML
  103. private TableColumn<?, ?> tcKodeBarangBon;
  104. @FXML
  105. private TableColumn<?, ?> tcNamaBarangBon;
  106. @FXML
  107. private TableColumn<?, ?> tcUkurBon;
  108. @FXML
  109. private TableColumn<?, ?> tcJumlahBon;
  110. @FXML
  111. private TableColumn<?, ?> tcHargaBon;
  112. @FXML
  113. private TableColumn<?, ?> tcDisc1Bon;
  114. @FXML
  115. private TableColumn<?, ?> tcDisc2Bon;
  116. @FXML
  117. private TableColumn<?, ?> tcSubTotalBon;
  118. @FXML
  119. private TableColumn<?, ?> tcPramuniagaBon;
  120. @FXML
  121. private TitledPane tpRetur;
  122. @FXML
  123. private AnchorPane apRetur;
  124. @FXML
  125. private TableView<TabelBarangRetur> tbvRetur;
  126. @FXML
  127. private TableColumn<TabelBarangRetur, Integer> tcNoRetur;
  128. @FXML
  129. private TableColumn<TabelBarangRetur, String> tcKodeBarangRetur;
  130. @FXML
  131. private TableColumn<TabelBarangRetur, String> tcNamaBarangRetur;
  132. @FXML
  133. private TableColumn<TabelBarangRetur, String> tcUkurRetur;
  134. @FXML
  135. private TableColumn<TabelBarangRetur, String> tcJumlahRetur;
  136. @FXML
  137. private TableColumn<TabelBarangRetur, String> tcHargaRetur;
  138. @FXML
  139. private TableColumn<TabelBarangRetur, String> tcDisc1Retur;
  140. @FXML
  141. private TableColumn<TabelBarangRetur, String> tcDisc2Retur;
  142. @FXML
  143. private TableColumn<TabelBarangRetur, String> tcSubTotalRetur;
  144. @FXML
  145. private TableColumn<TabelBarangRetur, String> tcPramuniagaRetur;
  146. public final ObservableList<TabelBarangTunai> daftarTabelTunai = FXCollections.observableArrayList();
  147. public final ObservableList<TabelBarangRetur> daftarTabelRetur = FXCollections.observableArrayList();
  148. @Override
  149. public void initialize(URL url, ResourceBundle rb) {
  150. getDialogPane().getButtonTypes().add(new ButtonType("Tutup", ButtonData.CANCEL_CLOSE));
  151. //Tunai
  152. tcNoTunai.setCellValueFactory((TableColumn.CellDataFeatures<TabelBarangTunai, Integer> cell) -> {
  153. return new ReadOnlyObjectWrapper(tbvTunai.getItems().indexOf(cell.getValue()) + 1);
  154. });
  155. tcKodeBarangTunai.setCellValueFactory(new PropertyValueFactory<>("kode"));
  156. tcNamaBarangTunai.setCellValueFactory(new PropertyValueFactory<>("nama"));
  157. tcUkurTunai.setCellValueFactory(new PropertyValueFactory<>("ukur"));
  158. tcJumlahTunai.setCellValueFactory(new PropertyValueFactory<>("jumlah"));
  159. tcHargaTunai.setCellValueFactory(new PropertyValueFactory<>("harga"));
  160. tcDisc1Tunai.setCellValueFactory(new PropertyValueFactory<>("disc1"));
  161. tcDisc2Tunai.setCellValueFactory(new PropertyValueFactory<>("disc2"));
  162. tcSubTotalTunai.setCellValueFactory(new PropertyValueFactory<>("subTotal"));
  163. tcPramuniagaTunai.setCellValueFactory(new PropertyValueFactory<>("pramuniaga"));
  164. tbvTunai.setItems(daftarTabelTunai);
  165. //Bawa
  166. //Bon
  167. //Retur
  168. tcNoRetur.setCellValueFactory((TableColumn.CellDataFeatures<TabelBarangRetur, Integer> cell) -> {
  169. return new ReadOnlyObjectWrapper(tbvRetur.getItems().indexOf(cell.getValue()) + 1);
  170. });
  171. tcKodeBarangRetur.setCellValueFactory(new PropertyValueFactory<>("kode"));
  172. tcNamaBarangRetur.setCellValueFactory(new PropertyValueFactory<>("nama"));
  173. tcUkurRetur.setCellValueFactory(new PropertyValueFactory<>("ukur"));
  174. tcJumlahRetur.setCellValueFactory(new PropertyValueFactory<>("jumlah"));
  175. tcHargaRetur.setCellValueFactory(new PropertyValueFactory<>("harga"));
  176. tcDisc1Retur.setCellValueFactory(new PropertyValueFactory<>("disc1"));
  177. tcDisc2Retur.setCellValueFactory(new PropertyValueFactory<>("disc2"));
  178. tcSubTotalRetur.setCellValueFactory(new PropertyValueFactory<>("subTotal"));
  179. tcPramuniagaRetur.setCellValueFactory(new PropertyValueFactory<>("pramuniaga"));
  180. tbvRetur.setItems(daftarTabelRetur);
  181. }
  182. public DialogCetakNotaController() {
  183. try {
  184. Window window = getDialogPane().getScene().getWindow();
  185. window.setOnCloseRequest(event -> this.close());
  186. FXMLLoader loader = new FXMLLoader(getClass().getResource("/fxml/DialogCetakNota.fxml"));
  187. loader.setController(this);
  188. Parent root = loader.load();
  189. getDialogPane().setContent(root);
  190. setTitle("Cetak Nota");
  191. } catch (IOException e) {
  192. Logger.getLogger(DialogCetakNotaController.class
  193. .getName()).log(Level.SEVERE, null, e);
  194. }
  195. }
  196. public void initData(ObservableList<TabelBarangTunai> daftarTabelTransaksiTunai,
  197. ObservableList<TabelBarangRetur> daftarTabelTransaksiRetur) {
  198. if (daftarTabelTransaksiTunai != null) {
  199. for (TabelBarangTunai tbt : daftarTabelTransaksiTunai) {
  200. daftarTabelTunai.add(new TabelBarangTunai(tbt.getKode(), tbt.getNama(), tbt.getUkur(),
  201. tbt.getJumlah(), tbt.getHarga(), tbt.getDisc1(), tbt.getDisc2(), null,
  202. tbt.getSubTotal(), Fucout.getText(tbt.getFldPramuniaga().getText()), null));
  203. }
  204. }
  205. if (daftarTabelTransaksiRetur != null) {
  206. for (TabelBarangRetur tbr : daftarTabelTransaksiRetur) {
  207. daftarTabelRetur.add(new TabelBarangRetur(tbr.getKode(), tbr.getNama(), tbr.getUkur(),
  208. tbr.getJumlah(), tbr.getHarga(), tbr.getDisc1(), tbr.getDisc2(), tbr.getSubTotal(),
  209. Fucout.getText(tbr.getFldPramuniaga().getText())));
  210. }
  211. }
  212. }
  213. }