Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2019
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 44.79 KB | None | 0 0
  1. package application.controllers;
  2.  
  3. import java.net.URL;
  4. import java.sql.Connection;
  5. import java.sql.DriverManager;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8. import java.sql.Statement;
  9. import java.time.LocalDate;
  10. import java.util.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", "imad",
  116. "11");
  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 barcode from bought where bought.barcode between '0000000000000'and '0000000001000') union (select barcode from stored where stored.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 barcode from bought where bought.barcode between '0000000000000'and '0000000001000') union (select barcode from stored where stored.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", "imad",
  413. "11");
  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", "imad", "11");
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement