Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 28.91 KB | None | 0 0
  1. package application.controllers;
  2.  
  3. import java.net.URL;
  4. import java.sql.Connection;
  5. import java.sql.DriverManager;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8. import java.sql.Statement;
  9. import java.time.LocalDate;
  10. import java.util.ResourceBundle;
  11.  
  12. import org.controlsfx.control.textfield.TextFields;
  13.  
  14. import application.Item;
  15. import javafx.application.Platform;
  16. import javafx.collections.FXCollections;
  17. import javafx.collections.ObservableList;
  18. import javafx.event.ActionEvent;
  19. import javafx.fxml.FXML;
  20. import javafx.fxml.Initializable;
  21. import javafx.scene.control.Alert;
  22. import javafx.scene.control.Button;
  23. import javafx.scene.control.ButtonBar.ButtonData;
  24. import javafx.scene.control.ButtonType;
  25. import javafx.scene.control.DatePicker;
  26. import javafx.scene.control.Dialog;
  27. import javafx.scene.control.Label;
  28. import javafx.scene.control.TableColumn;
  29. import javafx.scene.control.TableView;
  30. import javafx.scene.control.TextField;
  31. import javafx.scene.control.TextInputDialog;
  32. import javafx.scene.control.Alert.AlertType;
  33. import javafx.scene.control.cell.PropertyValueFactory;
  34. import javafx.scene.image.Image;
  35. import javafx.scene.input.KeyCode;
  36. import javafx.scene.input.KeyEvent;
  37. import javafx.stage.Stage;
  38. import javafx.util.Callback;
  39.  
  40. public class ImportBillController implements Initializable {
  41.  
  42. String[] storedItems = { "Hi", "Hello", "Hakuna", "Matata" };
  43.  
  44. ObservableList<Item> data = FXCollections.observableArrayList();
  45.  
  46. @FXML
  47. private DatePicker billDate;
  48.  
  49. @FXML
  50. private TextField distPhone;
  51.  
  52. @FXML
  53. private TextField distName;
  54.  
  55. @FXML
  56. private TableView<Item> table;
  57.  
  58. @FXML
  59. private TableColumn<Item, String> barcodeColumn;
  60.  
  61. @FXML
  62. private TableColumn<Item, String> itemColumn;
  63.  
  64. @FXML
  65. private TableColumn<Item, Integer> quantityColumn;
  66.  
  67. @FXML
  68. private TableColumn<Item, Double> buyPriceColumn;
  69.  
  70. @FXML
  71. private TableColumn<Item, Double> sellPriceColumn;
  72.  
  73. @FXML
  74. private TableColumn<Item, Item> TotalBuyPriceColumn;
  75.  
  76. @FXML
  77. private TableColumn<Item, Double> TotalSellPriceColumn;
  78.  
  79. @FXML
  80. private Label collectTotalBuyPriceLabel;
  81.  
  82. @FXML
  83. private Label collectTotalSellPriceLabel;
  84.  
  85. @FXML
  86. private Button saveButton;
  87.  
  88. @FXML
  89. private Button cancelButton;
  90.  
  91. @FXML
  92. private TextField barcodeReader;
  93.  
  94. @FXML
  95. void buttonHandler(ActionEvent event) throws SQLException {
  96.  
  97. if (event.getSource().toString().contains("saveButton")) {
  98.  
  99. if (data.size() == 0) {
  100. // empty table
  101. Alert alert = new Alert(AlertType.WARNING);
  102. alert.setTitle("فاتورة فارغة");
  103. alert.setHeaderText(null);
  104. alert.setContentText("الفاتورة فارغة، الرجاء تعبئة السلع اولاً");
  105. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  106. stage.getIcons().add(new Image("/application/images/icon.png"));
  107. alert.showAndWait();
  108.  
  109. }
  110.  
  111. // Data Base Query
  112. DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
  113. Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "ahmad",
  114. "112233");
  115. Statement statement = connection.createStatement();
  116. String q = "";
  117.  
  118. // if name of supplier doesn't exists
  119. if (distName.getText().equals("")) {
  120.  
  121. for (int i = 0; i < data.size(); i++) {
  122. /// we should make it here
  123. if (!data.get(i).getBarcode().equals("")) {
  124. q = "select * from stored where barcode ='" + data.get(i).getBarcode() + "'";
  125. ResultSet rs = statement.executeQuery(q);
  126. int count = 0;
  127. while (rs.next()) {
  128. count++;
  129. }
  130. if (count == 0) {
  131.  
  132. q = "insert into stored values (" + data.get(i).getSellPrice() + ",'"
  133. + data.get(i).getBarcode() + "','" + data.get(i).getName() + "',"
  134. + data.get(i).getBuyPrice() + "," + data.get(i).getQuant() + ",TO_DATE('"
  135. + data.get(i).getExpDate() + "','YYYY-MM-DD'))";
  136. statement.executeUpdate(q);
  137. }
  138.  
  139. else {
  140. q = "update stored set quantity=quantity+" + data.get(i).getQuant() + "where barcode ='"
  141. + data.get(i).getBarcode() + "'";
  142. statement.executeUpdate(q);
  143. q = "update stored set exp_date=TO_DATE('" + data.get(i).getExpDate()
  144. + "','YYYY-MM-DD') where barcode = '" + data.get(i).getBarcode() + "'";
  145. statement.executeUpdate(q);
  146.  
  147. }
  148.  
  149. }
  150.  
  151. else {
  152.  
  153. int count = 0;
  154. int count2 = 0;
  155. int count3 = 0;
  156. q = "select * from stored where barcode between '000000000'and '000001000'";
  157. ResultSet rs = statement.executeQuery(q);
  158. while (rs.next()) {
  159. count3++;
  160. }
  161. String bar = "";
  162. if (count3 >= 0 && count3 < 10)
  163. bar = "00000000" + count3;
  164. else if (count3 >= 10 && count3 <= 100)
  165. bar = "0000000" + count3;
  166. else
  167. bar = "000000" + count3;
  168.  
  169. q = "select * from stored where name ='" + data.get(i).getName() + "'";
  170. rs = statement.executeQuery(q);
  171. while (rs.next()) {
  172. count++;
  173. }
  174.  
  175. if (count != 0) {
  176. q = "update stored set quantity=quantity+" + data.get(i).getQuant() + " where name='"
  177. + data.get(i).getName() + "'";
  178. statement.executeUpdate(q);
  179. q = "update stored set exp_date=TO_DATE('" + data.get(i).getExpDate()
  180. + "','YYYY-MM-DD') where name = '" + data.get(i).getName() + "'";
  181. statement.executeUpdate(q);
  182. } else {
  183. q = "insert into stored values (" + data.get(i).getSellPrice() + ",'" + bar + "','"
  184. + data.get(i).getName() + "'," + data.get(i).getBuyPrice() + ","
  185. + data.get(i).getQuant() + ",TO_DATE('" + data.get(i).getExpDate()
  186. + "','YYYY-MM-DD'))";
  187. statement.executeUpdate(q);
  188.  
  189. }
  190.  
  191. }
  192.  
  193. }
  194.  
  195. }
  196. // if name of supplier exists
  197. else {
  198. q = "select * from supplier where supplier_name ='" + distName.getText() + "'";
  199. ResultSet rs = statement.executeQuery(q);
  200. int count = 0;
  201. while (rs.next()) {
  202. count++;
  203. }
  204. if (count == 0) {
  205. q = "insert into supplier values('" + distName.getText() + "','" + distPhone.getText() + "')";
  206. statement.executeUpdate(q);
  207. }
  208. // till here i had insert the name of supplier if it doesnt Exist
  209.  
  210. for (int i = 0; i < data.size(); i++) {
  211.  
  212. if (!data.get(i).getBarcode().equals("")) {
  213.  
  214. q = "select * from bought where barcode ='" + data.get(i).getBarcode() + "'";
  215. rs = statement.executeQuery(q);
  216. count = 0;
  217. while (rs.next()) {
  218. count++;
  219. }
  220. if (count == 0) {
  221. q = "insert into bought values(" + data.get(i).getSellPrice() + ",'"
  222. + data.get(i).getBarcode() + "','" + data.get(i).getName() + "',"
  223. + data.get(i).getBuyPrice() + ")";
  224. statement.executeUpdate(q);
  225. q = "insert into buying_bill values('" + data.get(i).getBarcode() + "',TO_DATE('"
  226. + LocalDate.now() + "','YYYY-MM-DD')," + data.get(i).getQuant() + ",'"
  227. + distName.getText() + "')";
  228. statement.executeUpdate(q);
  229.  
  230. count = 0;
  231. q = "select * from stored where barcode='" + data.get(i).getBarcode() + "'";
  232. rs = statement.executeQuery(q);
  233. while (rs.next()) {
  234. count++;
  235. }
  236.  
  237. if (count != 0) {
  238. q = "update stored set quantity=quantity+" + data.get(i).getQuant() + "where barcode='"
  239. + data.get(i).getBarcode() + "'";
  240. statement.executeUpdate(q);
  241. q = "update stored set exp_date=TO_DATE('" + data.get(i).getExpDate()
  242. + "','YYYY-MM-DD') where name = '" + data.get(i).getName() + "'";
  243. statement.executeUpdate(q);
  244. }
  245.  
  246. else {
  247. q = "insert into stored values (" + data.get(i).getSellPrice() + ",'"
  248. + data.get(i).getBarcode() + "','" + data.get(i).getName() + "',"
  249. + data.get(i).getBuyPrice() + "," + data.get(i).getQuant() + ",TO_DATE('"
  250. + data.get(i).getExpDate() + "','YYYY-MM-DD'))";
  251. statement.executeUpdate(q);
  252.  
  253. }
  254.  
  255. }
  256.  
  257. else {
  258. q = "insert into buying_bill values('" + data.get(i).getBarcode() + "',TO_DATE('"
  259. + LocalDate.now() + "','YYYY-MM-DD')," + data.get(i).getQuant() + ",'"
  260. + distName.getText() + "')";
  261. statement.executeUpdate(q);
  262.  
  263. if (count != 0) {
  264. q = "update stored set quantity=quantity+" + data.get(i).getQuant() + "where barcode='"
  265. + data.get(i).getBarcode() + "'";
  266. statement.executeUpdate(q);
  267. q = "update stored set exp_date=TO_DATE('" + data.get(i).getExpDate()
  268. + "','YYYY-MM-DD') where name = '" + data.get(i).getName() + "'";
  269. statement.executeUpdate(q);
  270. } else {
  271. q = "insert into stored values (" + data.get(i).getSellPrice() + ",'"
  272. + data.get(i).getName() + "','" + data.get(i).getName() + "',"
  273. + data.get(i).getBuyPrice() + "," + data.get(i).getQuant() + ",TO_DATE('"
  274. + data.get(i).getExpDate() + "','YYYY-MM-DD'))";
  275. statement.executeUpdate(q);
  276.  
  277. }
  278.  
  279. }
  280.  
  281. }
  282.  
  283. else {
  284. // here if supplier exists but barcode doesn't
  285. int countb = 0;
  286. int count2 = 0;
  287. int count3 = 0;
  288. q = "select * from stored where barcode between '000000000'and '000001000'";
  289. ResultSet rss = statement.executeQuery(q);
  290. while (rss.next()) {
  291. count3++;
  292. }
  293. String bar = "";
  294. if (count3 >= 0 && count3 < 10)
  295. bar = "00000000" + count3;
  296. else if (count3 >= 10 && count3 <= 100)
  297. bar = "0000000" + count3;
  298. else
  299. bar = "000000" + count3;
  300.  
  301. q = "select * from stored where name ='" + data.get(i).getName() + "'";
  302. rss = statement.executeQuery(q);
  303. while (rs.next()) {
  304. countb++;
  305. }
  306.  
  307. if (countb != 0) {
  308. q = "update stored set quantity=quantity+" + data.get(i).getQuant() + " where name='"
  309. + data.get(i).getName() + "'";
  310. statement.executeUpdate(q);
  311. q = "update stored set exp_date=TO_DATE('" + data.get(i).getExpDate()
  312. + "','YYYY-MM-DD') where name = '" + data.get(i).getName() + "'";
  313. statement.executeUpdate(q);
  314. q = "insert into buying_bill values('" + bar + "',TO_DATE('" + LocalDate.now()
  315. + "','YYYY-MM-DD')," + data.get(i).getQuant() + ",'" + distName.getText() + "')";
  316. statement.executeUpdate(q);
  317. } else {
  318. q = "insert into stored values (" + data.get(i).getSellPrice() + ",'" + bar + "','"
  319. + data.get(i).getName() + "'," + data.get(i).getBuyPrice() + ","
  320. + data.get(i).getQuant() + ",TO_DATE('" + data.get(i).getExpDate()
  321. + "','YYYY-MM-DD'))";
  322. statement.executeUpdate(q);
  323. q = "insert into buying_bill values('" + bar + "',TO_DATE('" + LocalDate.now()
  324. + "','YYYY-MM-DD')," + data.get(i).getQuant() + ",'" + distName.getText() + "')";
  325. statement.executeUpdate(q);
  326. }
  327.  
  328. q = "select * from bought where name='" + data.get(i).getName() + "'";
  329. ResultSet rs3 = statement.executeQuery(q);
  330. int count4 = 0;
  331. while (rs3.next()) {
  332. count4++;
  333. }
  334. if (count4 == 0) {
  335. q = "insert into bought values(" + data.get(i).getSellPrice() + ",'" + bar + "','"
  336. + data.get(i).getName() + "'," + data.get(i).getBuyPrice() + ")";
  337. statement.executeUpdate(q);
  338. }
  339.  
  340. }
  341.  
  342. }
  343.  
  344. }
  345.  
  346. data.clear();
  347. table.refresh();
  348.  
  349. }
  350.  
  351. else {
  352. data.clear();
  353. table.refresh();
  354. }
  355.  
  356. }
  357.  
  358. @FXML
  359. void barcodeHandler(KeyEvent event) throws SQLException {
  360. String barcode = "", itemName = "";
  361. int quant = 0;
  362. double buyPrice = 0, sellPrice = 0, totalBP = 0, totalSP = 0;
  363. LocalDate expDate = null;
  364. boolean cancle = false;
  365.  
  366. if (event.getSource().toString().contains("barcodeReader"))
  367. if (event.getCode().equals(KeyCode.ENTER)) {
  368. barcode = barcodeReader.getText();
  369.  
  370. // Data Base Query
  371. DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
  372. Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "ahmad",
  373. "112233");
  374. Statement statement = connection.createStatement();
  375. String q = "";
  376.  
  377. // barcode written
  378. if (!barcodeReader.getText().equals("")) {
  379. int count = 0;
  380. q = "select * from stored where barcode='" + barcodeReader.getText() + "'";
  381. ResultSet rs = statement.executeQuery(q);
  382. while (rs.next()) {
  383. count++;
  384. }
  385.  
  386. if (count == 0) {
  387. // barcode is new
  388. Dialog<String> nameDialog = new Dialog<>();
  389. try {
  390. nameDialog.setTitle("اسم السلعة");
  391. nameDialog.setHeaderText("الرجاء ادخال اسم السلعة");
  392.  
  393. Stage stage2 = (Stage) nameDialog.getDialogPane().getScene().getWindow();
  394. stage2.getIcons().add(new Image("/application/images/icon.png"));
  395.  
  396. TextField nameTF = new TextField("");
  397. TextFields.bindAutoCompletion(nameTF, storedItems);
  398. nameDialog.getDialogPane().setContent(nameTF);
  399.  
  400. ButtonType buttonTypeOk2 = new ButtonType("تأكيد", ButtonData.OK_DONE);
  401. nameDialog.getDialogPane().getButtonTypes().add(buttonTypeOk2);
  402.  
  403. nameDialog.setResultConverter(new Callback<ButtonType, String>() {
  404. @Override
  405. public String call(ButtonType b) {
  406.  
  407. if (b == buttonTypeOk2) {
  408. return nameTF.getText();
  409. }
  410.  
  411. return null;
  412. }
  413. });
  414.  
  415. itemName = nameDialog.showAndWait().get();
  416. if (itemName.equals(""))
  417. throw new Exception();
  418.  
  419. } catch (Exception e) {
  420. Alert alert = new Alert(AlertType.WARNING);
  421. alert.setTitle("اسم خاطئ");
  422. alert.setHeaderText(null);
  423. alert.setContentText("الرجاء إدخال اسم السلعة");
  424. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  425. stage.getIcons().add(new Image("/application/images/icon.png"));
  426. alert.showAndWait();
  427. cancle = true;
  428.  
  429. }
  430. //////
  431.  
  432. TextInputDialog dialog = new TextInputDialog();
  433. //
  434. dialog = new TextInputDialog();
  435. dialog.setTitle("الكمية");
  436. dialog.setHeaderText("الرجاء إدخال الكمية");
  437. if (!cancle)
  438. try {
  439. quant = Integer.parseInt(dialog.showAndWait().get());
  440. } catch (Exception e) {
  441. Alert alert = new Alert(AlertType.WARNING);
  442. alert.setTitle("إدخال خاطئ");
  443. alert.setHeaderText(null);
  444. alert.setContentText("الرجاء إدخال الكمية");
  445. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  446. stage.getIcons().add(new Image("/application/images/icon.png"));
  447. alert.showAndWait();
  448. cancle = true;
  449. }
  450. //
  451. dialog = new TextInputDialog();
  452. dialog.setTitle("سعر الشراء");
  453. dialog.setHeaderText("الرجاء إدخال سعر شراء الوحدة");
  454. if (!cancle)
  455. try {
  456. buyPrice = Double.parseDouble(dialog.showAndWait().get());
  457. } catch (Exception e) {
  458. Alert alert = new Alert(AlertType.WARNING);
  459. alert.setTitle("إدخال خاطئ");
  460. alert.setHeaderText(null);
  461. alert.setContentText("الرجاء إدخال سعر الشراء");
  462. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  463. stage.getIcons().add(new Image("/application/images/icon.png"));
  464. alert.showAndWait();
  465. cancle = true;
  466. }
  467. //
  468. dialog = new TextInputDialog();
  469. dialog.setTitle("سعر البيع");
  470. dialog.setHeaderText("الرجاء إدخال سعر بيع الوحدة");
  471. if (!cancle)
  472. try {
  473. sellPrice = Double.parseDouble(dialog.showAndWait().get());
  474. } catch (Exception e) {
  475. Alert alert = new Alert(AlertType.WARNING);
  476. alert.setTitle("إدخال خاطئ");
  477. alert.setHeaderText(null);
  478. alert.setContentText("الرجاء إدخال سعر البيع");
  479. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  480. stage.getIcons().add(new Image("/application/images/icon.png"));
  481. alert.showAndWait();
  482. cancle = true;
  483. }
  484. //
  485. // show Calender dialog
  486. Dialog<LocalDate> dateDialog = new Dialog<>();
  487. try {
  488. dateDialog.setTitle("تاريخ انتهاء السلعة");
  489. dateDialog.setHeaderText("الرجاء ادخال تاريخ انتهاء السلعة");
  490. Stage stage = (Stage) dateDialog.getDialogPane().getScene().getWindow();
  491. stage.getIcons().add(new Image("/application/images/icon.png"));
  492.  
  493. DatePicker datePicker = new DatePicker();
  494. dateDialog.getDialogPane().setContent(datePicker);
  495.  
  496. ButtonType buttonTypeOk = new ButtonType("تأكيد", ButtonData.OK_DONE);
  497. dateDialog.getDialogPane().getButtonTypes().add(buttonTypeOk);
  498.  
  499. dateDialog.setResultConverter(new Callback<ButtonType, LocalDate>() {
  500. @Override
  501. public LocalDate call(ButtonType b) {
  502.  
  503. if (b == buttonTypeOk) {
  504.  
  505. return datePicker.getValue();
  506. }
  507.  
  508. return null;
  509. }
  510. });
  511.  
  512. if (!cancle)
  513. expDate = dateDialog.showAndWait().get();
  514. } catch (Exception e) {
  515. Alert alert = new Alert(AlertType.WARNING);
  516. alert.setTitle("إدخال خاطئ");
  517. alert.setHeaderText(null);
  518. alert.setContentText("الرجاء إدخال تاريخ إنتهاء السلعة");
  519. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  520. stage.getIcons().add(new Image("/application/images/icon.png"));
  521. alert.showAndWait();
  522. cancle = true;
  523. }
  524.  
  525. } else {
  526. rs = statement.executeQuery(q);
  527.  
  528. TextInputDialog dialog = new TextInputDialog();
  529. //
  530. dialog = new TextInputDialog();
  531. dialog.setTitle("الكمية");
  532. dialog.setHeaderText("الرجاء إدخال الكمية");
  533. if (!cancle)
  534. try {
  535. quant = Integer.parseInt(dialog.showAndWait().get());
  536. } catch (Exception e) {
  537. Alert alert = new Alert(AlertType.WARNING);
  538. alert.setTitle("إدخال خاطئ");
  539. alert.setHeaderText(null);
  540. alert.setContentText("الرجاء إدخال الكمية");
  541. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  542. stage.getIcons().add(new Image("/application/images/icon.png"));
  543. alert.showAndWait();
  544. cancle = true;
  545. }
  546. //
  547. // show Calender dialog
  548. Dialog<LocalDate> dateDialog = new Dialog<>();
  549. try {
  550. dateDialog.setTitle("تاريخ انتهاء السلعة");
  551. dateDialog.setHeaderText("الرجاء ادخال تاريخ انتهاء السلعة");
  552. Stage stage = (Stage) dateDialog.getDialogPane().getScene().getWindow();
  553. stage.getIcons().add(new Image("/application/images/icon.png"));
  554.  
  555. DatePicker datePicker = new DatePicker();
  556. dateDialog.getDialogPane().setContent(datePicker);
  557.  
  558. ButtonType buttonTypeOk = new ButtonType("تأكيد", ButtonData.OK_DONE);
  559. dateDialog.getDialogPane().getButtonTypes().add(buttonTypeOk);
  560.  
  561. dateDialog.setResultConverter(new Callback<ButtonType, LocalDate>() {
  562. @Override
  563. public LocalDate call(ButtonType b) {
  564.  
  565. if (b == buttonTypeOk) {
  566.  
  567. return datePicker.getValue();
  568. }
  569.  
  570. return null;
  571. }
  572. });
  573.  
  574. if (!cancle)
  575. expDate = dateDialog.showAndWait().get();
  576. } catch (Exception e) {
  577. Alert alert = new Alert(AlertType.WARNING);
  578. alert.setTitle("إدخال خاطئ");
  579. alert.setHeaderText(null);
  580. alert.setContentText("الرجاء إدخال تاريخ إنتهاء السلعة");
  581. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  582. stage.getIcons().add(new Image("/application/images/icon.png"));
  583. alert.showAndWait();
  584. cancle = true;
  585. }
  586.  
  587. sellPrice = rs.getDouble("sell_price");
  588. buyPrice = rs.getDouble("buy_price");
  589. itemName = rs.getString("Name");
  590.  
  591. }
  592. }
  593. // barcode not written
  594. else {
  595. // ask for the name
  596. ////////
  597. Dialog<String> nameDialog = new Dialog<>();
  598. try {
  599. nameDialog.setTitle("اسم السلعة");
  600. nameDialog.setHeaderText("الرجاء ادخال اسم السلعة");
  601.  
  602. Stage stage2 = (Stage) nameDialog.getDialogPane().getScene().getWindow();
  603. stage2.getIcons().add(new Image("/application/images/icon.png"));
  604.  
  605. TextField nameTF = new TextField("");
  606. TextFields.bindAutoCompletion(nameTF, storedItems);
  607. nameDialog.getDialogPane().setContent(nameTF);
  608.  
  609. ButtonType buttonTypeOk2 = new ButtonType("تأكيد", ButtonData.OK_DONE);
  610. nameDialog.getDialogPane().getButtonTypes().add(buttonTypeOk2);
  611.  
  612. nameDialog.setResultConverter(new Callback<ButtonType, String>() {
  613. @Override
  614. public String call(ButtonType b) {
  615.  
  616. if (b == buttonTypeOk2) {
  617.  
  618. return nameTF.getText();
  619. }
  620.  
  621. return null;
  622. }
  623. });
  624.  
  625. itemName = nameDialog.showAndWait().get();
  626. if (itemName.equals(""))
  627. throw new Exception();
  628.  
  629. } catch (Exception e) {
  630. Alert alert = new Alert(AlertType.WARNING);
  631. alert.setTitle("اسم خاطئ");
  632. alert.setHeaderText(null);
  633. alert.setContentText("الرجاء إدخال اسم السلعة");
  634. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  635. stage.getIcons().add(new Image("/application/images/icon.png"));
  636. alert.showAndWait();
  637. cancle = true;
  638.  
  639. }
  640. q = "select * from stored where name='" + itemName + "'";
  641. int count = 0;
  642. ResultSet rs = statement.executeQuery(q);
  643. while (rs.next()) {
  644. count++;
  645. }
  646.  
  647. if (count != 0) {
  648. // ask for date & quant
  649. rs = statement.executeQuery(q);
  650. rs.next();
  651. sellPrice = rs.getDouble("sell_price");
  652. buyPrice = rs.getDouble("buy_price");
  653. TextInputDialog dialog = new TextInputDialog();
  654.  
  655. //
  656. dialog = new TextInputDialog();
  657. dialog.setTitle("الكمية");
  658. dialog.setHeaderText("الرجاء إدخال الكمية");
  659. if(!cancle)
  660. try {
  661. quant = Integer.parseInt(dialog.showAndWait().get());
  662. } catch (Exception e) {
  663. Alert alert = new Alert(AlertType.WARNING);
  664. alert.setTitle("إدخال خاطئ");
  665. alert.setHeaderText(null);
  666. alert.setContentText("الرجاء إدخال الكمية");
  667. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  668. stage.getIcons().add(new Image("/application/images/icon.png"));
  669. alert.showAndWait();
  670. cancle = true;
  671. }
  672. //
  673. // show Calender dialog
  674. Dialog<LocalDate> dateDialog = new Dialog<>();
  675. try {
  676. dateDialog.setTitle("تاريخ انتهاء السلعة");
  677. dateDialog.setHeaderText("الرجاء ادخال تاريخ انتهاء السلعة");
  678. Stage stage = (Stage) dateDialog.getDialogPane().getScene().getWindow();
  679. stage.getIcons().add(new Image("/application/images/icon.png"));
  680.  
  681. DatePicker datePicker = new DatePicker();
  682. dateDialog.getDialogPane().setContent(datePicker);
  683.  
  684. ButtonType buttonTypeOk = new ButtonType("تأكيد", ButtonData.OK_DONE);
  685. dateDialog.getDialogPane().getButtonTypes().add(buttonTypeOk);
  686.  
  687. dateDialog.setResultConverter(new Callback<ButtonType, LocalDate>() {
  688. @Override
  689. public LocalDate call(ButtonType b) {
  690.  
  691. if (b == buttonTypeOk) {
  692.  
  693. return datePicker.getValue();
  694. }
  695.  
  696. return null;
  697. }
  698. });
  699.  
  700. if (!cancle)
  701. expDate = dateDialog.showAndWait().get();
  702. } catch (Exception e) {
  703. Alert alert = new Alert(AlertType.WARNING);
  704. alert.setTitle("إدخال خاطئ");
  705. alert.setHeaderText(null);
  706. alert.setContentText("الرجاء إدخال تاريخ إنتهاء السلعة");
  707. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  708. stage.getIcons().add(new Image("/application/images/icon.png"));
  709. alert.showAndWait();
  710. cancle = true;
  711. }
  712.  
  713. }
  714.  
  715. else {
  716. // ask for everything
  717.  
  718. TextInputDialog dialog = new TextInputDialog();
  719.  
  720. //
  721. dialog = new TextInputDialog();
  722. dialog.setTitle("الكمية");
  723. dialog.setHeaderText("الرجاء إدخال الكمية");
  724. if (!cancle)
  725. try {
  726. quant = Integer.parseInt(dialog.showAndWait().get());
  727. } catch (Exception e) {
  728. Alert alert = new Alert(AlertType.WARNING);
  729. alert.setTitle("إدخال خاطئ");
  730. alert.setHeaderText(null);
  731. alert.setContentText("الرجاء إدخال الكمية");
  732. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  733. stage.getIcons().add(new Image("/application/images/icon.png"));
  734. alert.showAndWait();
  735. cancle = true;
  736. }
  737. //
  738. dialog = new TextInputDialog();
  739. dialog.setTitle("سعر الشراء");
  740. dialog.setHeaderText("الرجاء إدخال سعر شراء الوحدة");
  741. if (!cancle)
  742. try {
  743. buyPrice = Double.parseDouble(dialog.showAndWait().get());
  744. } catch (Exception e) {
  745. Alert alert = new Alert(AlertType.WARNING);
  746. alert.setTitle("إدخال خاطئ");
  747. alert.setHeaderText(null);
  748. alert.setContentText("الرجاء إدخال سعر الشراء");
  749. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  750. stage.getIcons().add(new Image("/application/images/icon.png"));
  751. alert.showAndWait();
  752. cancle = true;
  753. }
  754. //
  755. dialog = new TextInputDialog();
  756. dialog.setTitle("سعر البيع");
  757. dialog.setHeaderText("الرجاء إدخال سعر بيع الوحدة");
  758. if (!cancle)
  759. try {
  760. sellPrice = Double.parseDouble(dialog.showAndWait().get());
  761. } catch (Exception e) {
  762. Alert alert = new Alert(AlertType.WARNING);
  763. alert.setTitle("إدخال خاطئ");
  764. alert.setHeaderText(null);
  765. alert.setContentText("الرجاء إدخال سعر البيع");
  766. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  767. stage.getIcons().add(new Image("/application/images/icon.png"));
  768. alert.showAndWait();
  769. cancle = true;
  770. }
  771. //
  772.  
  773. // show Calender dialog
  774. Dialog<LocalDate> dateDialog = new Dialog<>();
  775. try {
  776. dateDialog.setTitle("تاريخ انتهاء السلعة");
  777. dateDialog.setHeaderText("الرجاء ادخال تاريخ انتهاء السلعة");
  778. Stage stage = (Stage) dateDialog.getDialogPane().getScene().getWindow();
  779. stage.getIcons().add(new Image("/application/images/icon.png"));
  780.  
  781. DatePicker datePicker = new DatePicker();
  782. dateDialog.getDialogPane().setContent(datePicker);
  783.  
  784. ButtonType buttonTypeOk = new ButtonType("تأكيد", ButtonData.OK_DONE);
  785. dateDialog.getDialogPane().getButtonTypes().add(buttonTypeOk);
  786.  
  787. dateDialog.setResultConverter(new Callback<ButtonType, LocalDate>() {
  788. @Override
  789. public LocalDate call(ButtonType b) {
  790.  
  791. if (b == buttonTypeOk) {
  792.  
  793. return datePicker.getValue();
  794. }
  795.  
  796. return null;
  797. }
  798. });
  799.  
  800. if (!cancle)
  801. expDate = dateDialog.showAndWait().get();
  802. } catch (Exception e) {
  803. Alert alert = new Alert(AlertType.WARNING);
  804. alert.setTitle("إدخال خاطئ");
  805. alert.setHeaderText(null);
  806. alert.setContentText("الرجاء إدخال تاريخ إنتهاء السلعة");
  807. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  808. stage.getIcons().add(new Image("/application/images/icon.png"));
  809. alert.showAndWait();
  810. cancle = true;
  811. }
  812.  
  813. }
  814. }
  815.  
  816. if (!cancle)
  817. data.add(new Item(barcode, itemName, quant, buyPrice, sellPrice, expDate, buyPrice * quant,
  818. sellPrice * quant));
  819.  
  820. table.refresh();
  821. barcodeReader.clear();
  822.  
  823. }
  824. }
  825.  
  826. @Override
  827. public void initialize(URL location, ResourceBundle resources) {
  828. Platform.runLater(() -> barcodeReader.requestFocus());
  829. billDate.setValue(LocalDate.now());
  830.  
  831. table.setItems(data);
  832.  
  833. barcodeColumn.setCellValueFactory(new PropertyValueFactory<>("barcode"));
  834. itemColumn.setCellValueFactory(new PropertyValueFactory<>("name"));
  835. quantityColumn.setCellValueFactory(new PropertyValueFactory<>("quant"));
  836. buyPriceColumn.setCellValueFactory(new PropertyValueFactory<>("buyPrice"));
  837. sellPriceColumn.setCellValueFactory(new PropertyValueFactory<>("sellPrice"));
  838. TotalBuyPriceColumn.setCellValueFactory(new PropertyValueFactory<>("totalBP"));
  839. TotalSellPriceColumn.setCellValueFactory(new PropertyValueFactory<>("totalSP"));
  840.  
  841. }
  842.  
  843. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement