SHARE
TWEET

Untitled

a guest Apr 23rd, 2019 63 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top