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.

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