SHARE
TWEET

Untitled

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