Advertisement
Guest User

Untitled

a guest
Apr 24th, 2019
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 47.11 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. int countc=0;
  347. q="select * from bought where name='"+data.get(i).getName()+"'";
  348. rss=statement.executeQuery(q);
  349. while(rss.next()) {
  350. countc++;
  351. }
  352.  
  353. if (countb != 0) {
  354. q = "update stored set quantity=quantity+" + data.get(i).getQuant() + " where name='"
  355. + data.get(i).getName() + "'";
  356. statement.executeUpdate(q);
  357. q = "update stored set exp_date=TO_DATE('" + data.get(i).getExpDate()
  358. + "','YYYY-MM-DD') where name = '" + data.get(i).getName() + "'";
  359. statement.executeUpdate(q);
  360. if(countc==0) {
  361. q = "insert into buying_bill values('" + bar2 + "',TO_DATE('" + LocalDate.now()
  362. + "','YYYY-MM-DD')," + data.get(i).getQuant() + ",'" + distName.getText() + "')";
  363. statement.executeUpdate(q);
  364. }
  365. else {
  366. q="select barcode from bought where name='"+data.get(i).getName()+"'";
  367. rss=statement.executeQuery(q);
  368. rss.next();
  369. bar2=rss.getString("barcode");
  370.  
  371. q = "insert into buying_bill values('" + bar2 + "',TO_DATE('" + LocalDate.now()
  372. + "','YYYY-MM-DD')," + data.get(i).getQuant() + ",'" + distName.getText() + "')";
  373. statement.executeUpdate(q);
  374. }
  375.  
  376. } else {
  377. if(countc==0) {
  378. q = "insert into stored values (" + data.get(i).getSellPrice() + ",'" + bar2 + "','"
  379. + data.get(i).getName() + "'," + data.get(i).getBuyPrice() + ","
  380. + data.get(i).getQuant() + ",TO_DATE('" + data.get(i).getExpDate()
  381. + "','YYYY-MM-DD'))";
  382. statement.executeUpdate(q);
  383. q = "insert into buying_bill values('" + bar2 + "',TO_DATE('" + LocalDate.now()
  384. + "','YYYY-MM-DD')," + data.get(i).getQuant() + ",'" + distName.getText() + "')";
  385. statement.executeUpdate(q);
  386. }
  387. else {
  388. q="select barcode from bought where name='"+data.get(i).getName()+"'";
  389. ResultSet rsm=statement.executeQuery(q);
  390. rsm.next();
  391. bar2=rsm.getString("barcode");
  392.  
  393. q = "insert into stored values (" + data.get(i).getSellPrice() + ",'" + bar2 + "','"
  394. + data.get(i).getName() + "'," + data.get(i).getBuyPrice() + ","
  395. + data.get(i).getQuant() + ",TO_DATE('" + data.get(i).getExpDate()
  396. + "','YYYY-MM-DD'))";
  397. statement.executeUpdate(q);
  398. q = "insert into buying_bill values('" + bar2 + "',TO_DATE('" + LocalDate.now()
  399. + "','YYYY-MM-DD')," + data.get(i).getQuant() + ",'" + distName.getText() + "')";
  400. statement.executeUpdate(q);
  401.  
  402.  
  403. }
  404.  
  405.  
  406.  
  407.  
  408.  
  409. }
  410.  
  411. q = "select * from bought where name='" + data.get(i).getName() + "'";
  412. ResultSet rs3 = statement.executeQuery(q);
  413. int count4 = 0;
  414. while (rs3.next()) {
  415. count4++;
  416. }
  417. if (count4 == 0) {
  418. q = "insert into bought values(" + data.get(i).getSellPrice() + ",'" + bar2 + "','"
  419. + data.get(i).getName() + "'," + data.get(i).getBuyPrice() + ")";
  420. statement.executeUpdate(q);
  421. }
  422.  
  423. }
  424.  
  425. }
  426.  
  427. }
  428.  
  429. data.clear();
  430. table.refresh();
  431.  
  432. }
  433.  
  434. else {
  435. data.clear();
  436. table.refresh();
  437. }
  438.  
  439. }
  440.  
  441. @FXML
  442. void barcodeHandler(KeyEvent event) throws SQLException {
  443. String barcode = "", itemName = "";
  444. int quant = 0;
  445. double buyPrice = 0, sellPrice = 0, totalBP = 0, totalSP = 0;
  446. LocalDate expDate = null;
  447. boolean cancle = false;
  448.  
  449. if (event.getSource().toString().contains("barcodeReader"))
  450. if (event.getCode().equals(KeyCode.ENTER)) {
  451. barcode = barcodeReader.getText();
  452.  
  453. // Data Base Query
  454. DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
  455. Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "imad",
  456. "11");
  457. Statement statement = connection.createStatement();
  458. String q = "";
  459.  
  460. // barcode written
  461. if (!barcodeReader.getText().equals("")) {
  462. int count = 0;
  463. q = "select * from stored where barcode='" + barcodeReader.getText() + "'";
  464. ResultSet rs = statement.executeQuery(q);
  465. while (rs.next()) {
  466. count++;
  467. }
  468.  
  469. if (count == 0) {
  470. // barcode is new
  471. Dialog<String> nameDialog = new Dialog<>();
  472. try {
  473. nameDialog.setTitle("��� ������");
  474. nameDialog.setHeaderText("������ ����� ��� ������");
  475.  
  476. Stage stage2 = (Stage) nameDialog.getDialogPane().getScene().getWindow();
  477. stage2.getIcons().add(new Image("/application/images/icon.png"));
  478.  
  479. TextField nameTF = new TextField("");
  480. TextFields.bindAutoCompletion(nameTF, itemNamesForAutoComplete);
  481. nameDialog.getDialogPane().setContent(nameTF);
  482.  
  483. ButtonType buttonTypeOk2 = new ButtonType("�����", ButtonData.OK_DONE);
  484. nameDialog.getDialogPane().getButtonTypes().add(buttonTypeOk2);
  485.  
  486. nameDialog.setResultConverter(new Callback<ButtonType, String>() {
  487. @Override
  488. public String call(ButtonType b) {
  489.  
  490. if (b == buttonTypeOk2) {
  491. return nameTF.getText();
  492. }
  493.  
  494. return null;
  495. }
  496. });
  497.  
  498. itemName = nameDialog.showAndWait().get();
  499. if (itemName.equals(""))
  500. throw new Exception();
  501.  
  502. } catch (Exception e) {
  503. Alert alert = new Alert(AlertType.WARNING);
  504. alert.setTitle("��� ����");
  505. alert.setHeaderText(null);
  506. alert.setContentText("������ ����� ��� ������");
  507. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  508. stage.getIcons().add(new Image("/application/images/icon.png"));
  509. alert.showAndWait();
  510. cancle = true;
  511.  
  512. }
  513. //////
  514.  
  515. TextInputDialog dialog = new TextInputDialog();
  516. //
  517. dialog = new TextInputDialog();
  518. dialog.setTitle("������");
  519. dialog.setHeaderText("������ ����� ������");
  520. if (!cancle)
  521. try {
  522. quant = Integer.parseInt(dialog.showAndWait().get());
  523. } catch (Exception e) {
  524. Alert alert = new Alert(AlertType.WARNING);
  525. alert.setTitle("����� ����");
  526. alert.setHeaderText(null);
  527. alert.setContentText("������ ����� ������");
  528. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  529. stage.getIcons().add(new Image("/application/images/icon.png"));
  530. alert.showAndWait();
  531. cancle = true;
  532. }
  533. //
  534. dialog = new TextInputDialog();
  535. dialog.setTitle("��� ������");
  536. dialog.setHeaderText("������ ����� ��� ���� ������");
  537. if (!cancle)
  538. try {
  539. buyPrice = Double.parseDouble(dialog.showAndWait().get());
  540. } catch (Exception e) {
  541. Alert alert = new Alert(AlertType.WARNING);
  542. alert.setTitle("����� ����");
  543. alert.setHeaderText(null);
  544. alert.setContentText("������ ����� ��� ������");
  545. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  546. stage.getIcons().add(new Image("/application/images/icon.png"));
  547. alert.showAndWait();
  548. cancle = true;
  549. }
  550. //
  551. dialog = new TextInputDialog();
  552. dialog.setTitle("��� �����");
  553. dialog.setHeaderText("������ ����� ��� ��� ������");
  554. if (!cancle)
  555. try {
  556. sellPrice = Double.parseDouble(dialog.showAndWait().get());
  557. } catch (Exception e) {
  558. Alert alert = new Alert(AlertType.WARNING);
  559. alert.setTitle("����� ����");
  560. alert.setHeaderText(null);
  561. alert.setContentText("������ ����� ��� �����");
  562. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  563. stage.getIcons().add(new Image("/application/images/icon.png"));
  564. alert.showAndWait();
  565. cancle = true;
  566. }
  567. //
  568. // show Calender dialog
  569. Dialog<LocalDate> dateDialog = new Dialog<>();
  570. try {
  571. dateDialog.setTitle("����� ������ ������");
  572. dateDialog.setHeaderText("������ ����� ����� ������ ������");
  573. Stage stage = (Stage) dateDialog.getDialogPane().getScene().getWindow();
  574. stage.getIcons().add(new Image("/application/images/icon.png"));
  575.  
  576. DatePicker datePicker = new DatePicker();
  577. dateDialog.getDialogPane().setContent(datePicker);
  578.  
  579. ButtonType buttonTypeOk = new ButtonType("�����", ButtonData.OK_DONE);
  580. dateDialog.getDialogPane().getButtonTypes().add(buttonTypeOk);
  581.  
  582. dateDialog.setResultConverter(new Callback<ButtonType, LocalDate>() {
  583. @Override
  584. public LocalDate call(ButtonType b) {
  585.  
  586. if (b == buttonTypeOk) {
  587.  
  588. return datePicker.getValue();
  589. }
  590.  
  591. return null;
  592. }
  593. });
  594.  
  595. if (!cancle)
  596. expDate = dateDialog.showAndWait().get();
  597. } catch (Exception e) {
  598. Alert alert = new Alert(AlertType.WARNING);
  599. alert.setTitle("����� ����");
  600. alert.setHeaderText(null);
  601. alert.setContentText("������ ����� ����� ������ ������");
  602. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  603. stage.getIcons().add(new Image("/application/images/icon.png"));
  604. alert.showAndWait();
  605. cancle = true;
  606. }
  607.  
  608. } else {
  609. rs = statement.executeQuery(q);
  610.  
  611. TextInputDialog dialog = new TextInputDialog();
  612. //
  613. dialog = new TextInputDialog();
  614. dialog.setTitle("������");
  615. dialog.setHeaderText("������ ����� ������");
  616. if (!cancle)
  617. try {
  618. quant = Integer.parseInt(dialog.showAndWait().get());
  619. } catch (Exception e) {
  620. Alert alert = new Alert(AlertType.WARNING);
  621. alert.setTitle("����� ����");
  622. alert.setHeaderText(null);
  623. alert.setContentText("������ ����� ������");
  624. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  625. stage.getIcons().add(new Image("/application/images/icon.png"));
  626. alert.showAndWait();
  627. cancle = true;
  628. }
  629. //
  630. // show Calender dialog
  631. Dialog<LocalDate> dateDialog = new Dialog<>();
  632. try {
  633. dateDialog.setTitle("����� ������ ������");
  634. dateDialog.setHeaderText("������ ����� ����� ������ ������");
  635. Stage stage = (Stage) dateDialog.getDialogPane().getScene().getWindow();
  636. stage.getIcons().add(new Image("/application/images/icon.png"));
  637.  
  638. DatePicker datePicker = new DatePicker();
  639. dateDialog.getDialogPane().setContent(datePicker);
  640.  
  641. ButtonType buttonTypeOk = new ButtonType("�����", ButtonData.OK_DONE);
  642. dateDialog.getDialogPane().getButtonTypes().add(buttonTypeOk);
  643.  
  644. dateDialog.setResultConverter(new Callback<ButtonType, LocalDate>() {
  645. @Override
  646. public LocalDate call(ButtonType b) {
  647.  
  648. if (b == buttonTypeOk) {
  649.  
  650. return datePicker.getValue();
  651. }
  652.  
  653. return null;
  654. }
  655. });
  656.  
  657. if (!cancle)
  658. expDate = dateDialog.showAndWait().get();
  659. } catch (Exception e) {
  660. Alert alert = new Alert(AlertType.WARNING);
  661. alert.setTitle("����� ����");
  662. alert.setHeaderText(null);
  663. alert.setContentText("������ ����� ����� ������ ������");
  664. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  665. stage.getIcons().add(new Image("/application/images/icon.png"));
  666. alert.showAndWait();
  667. cancle = true;
  668. }
  669.  
  670. sellPrice = rs.getDouble("sell_price");
  671. buyPrice = rs.getDouble("buy_price");
  672. itemName = rs.getString("Name");
  673.  
  674. }
  675. }
  676. // barcode not written
  677. else {
  678. // ask for the name
  679. ////////
  680. Dialog<String> nameDialog = new Dialog<>();
  681. try {
  682. nameDialog.setTitle("��� ������");
  683. nameDialog.setHeaderText("������ ����� ��� ������");
  684.  
  685. Stage stage2 = (Stage) nameDialog.getDialogPane().getScene().getWindow();
  686. stage2.getIcons().add(new Image("/application/images/icon.png"));
  687.  
  688. TextField nameTF = new TextField("");
  689. TextFields.bindAutoCompletion(nameTF, itemNamesForAutoComplete);
  690. nameDialog.getDialogPane().setContent(nameTF);
  691.  
  692. ButtonType buttonTypeOk2 = new ButtonType("�����", ButtonData.OK_DONE);
  693. nameDialog.getDialogPane().getButtonTypes().add(buttonTypeOk2);
  694.  
  695. nameDialog.setResultConverter(new Callback<ButtonType, String>() {
  696. @Override
  697. public String call(ButtonType b) {
  698.  
  699. if (b == buttonTypeOk2) {
  700.  
  701. return nameTF.getText();
  702. }
  703.  
  704. return null;
  705. }
  706. });
  707.  
  708. itemName = nameDialog.showAndWait().get();
  709. if (itemName.equals(""))
  710. throw new Exception();
  711.  
  712. } catch (Exception e) {
  713. Alert alert = new Alert(AlertType.WARNING);
  714. alert.setTitle("��� ����");
  715. alert.setHeaderText(null);
  716. alert.setContentText("������ ����� ��� ������");
  717. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  718. stage.getIcons().add(new Image("/application/images/icon.png"));
  719. alert.showAndWait();
  720. cancle = true;
  721.  
  722. }
  723. q = "select * from stored where name='" + itemName + "'";
  724. int count = 0;
  725. ResultSet rs = statement.executeQuery(q);
  726. while (rs.next()) {
  727. count++;
  728. }
  729.  
  730. if (count != 0) {
  731. // ask for date & quant
  732. rs = statement.executeQuery(q);
  733. rs.next();
  734. sellPrice = rs.getDouble("sell_price");
  735. buyPrice = rs.getDouble("buy_price");
  736. TextInputDialog dialog = new TextInputDialog();
  737.  
  738. //
  739. dialog = new TextInputDialog();
  740. dialog.setTitle("������");
  741. dialog.setHeaderText("������ ����� ������");
  742. if (!cancle)
  743. try {
  744. quant = Integer.parseInt(dialog.showAndWait().get());
  745. } catch (Exception e) {
  746. Alert alert = new Alert(AlertType.WARNING);
  747. alert.setTitle("����� ����");
  748. alert.setHeaderText(null);
  749. alert.setContentText("������ ����� ������");
  750. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  751. stage.getIcons().add(new Image("/application/images/icon.png"));
  752. alert.showAndWait();
  753. cancle = true;
  754. }
  755. //
  756. // show Calender dialog
  757. Dialog<LocalDate> dateDialog = new Dialog<>();
  758. try {
  759. dateDialog.setTitle("����� ������ ������");
  760. dateDialog.setHeaderText("������ ����� ����� ������ ������");
  761. Stage stage = (Stage) dateDialog.getDialogPane().getScene().getWindow();
  762. stage.getIcons().add(new Image("/application/images/icon.png"));
  763.  
  764. DatePicker datePicker = new DatePicker();
  765. dateDialog.getDialogPane().setContent(datePicker);
  766.  
  767. ButtonType buttonTypeOk = new ButtonType("�����", ButtonData.OK_DONE);
  768. dateDialog.getDialogPane().getButtonTypes().add(buttonTypeOk);
  769.  
  770. dateDialog.setResultConverter(new Callback<ButtonType, LocalDate>() {
  771. @Override
  772. public LocalDate call(ButtonType b) {
  773.  
  774. if (b == buttonTypeOk) {
  775.  
  776. return datePicker.getValue();
  777. }
  778.  
  779. return null;
  780. }
  781. });
  782.  
  783. if (!cancle)
  784. expDate = dateDialog.showAndWait().get();
  785. } catch (Exception e) {
  786. Alert alert = new Alert(AlertType.WARNING);
  787. alert.setTitle("����� ����");
  788. alert.setHeaderText(null);
  789. alert.setContentText("������ ����� ����� ������ ������");
  790. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  791. stage.getIcons().add(new Image("/application/images/icon.png"));
  792. alert.showAndWait();
  793. cancle = true;
  794. }
  795.  
  796. }
  797.  
  798. else {
  799. // ask for everything
  800.  
  801. TextInputDialog dialog = new TextInputDialog();
  802.  
  803. //
  804. dialog = new TextInputDialog();
  805. dialog.setTitle("������");
  806. dialog.setHeaderText("������ ����� ������");
  807. if (!cancle)
  808. try {
  809. quant = Integer.parseInt(dialog.showAndWait().get());
  810. } catch (Exception e) {
  811. Alert alert = new Alert(AlertType.WARNING);
  812. alert.setTitle("����� ����");
  813. alert.setHeaderText(null);
  814. alert.setContentText("������ ����� ������");
  815. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  816. stage.getIcons().add(new Image("/application/images/icon.png"));
  817. alert.showAndWait();
  818. cancle = true;
  819. }
  820. //
  821. dialog = new TextInputDialog();
  822. dialog.setTitle("��� ������");
  823. dialog.setHeaderText("������ ����� ��� ���� ������");
  824. if (!cancle)
  825. try {
  826. buyPrice = Double.parseDouble(dialog.showAndWait().get());
  827. } catch (Exception e) {
  828. Alert alert = new Alert(AlertType.WARNING);
  829. alert.setTitle("����� ����");
  830. alert.setHeaderText(null);
  831. alert.setContentText("������ ����� ��� ������");
  832. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  833. stage.getIcons().add(new Image("/application/images/icon.png"));
  834. alert.showAndWait();
  835. cancle = true;
  836. }
  837. //
  838. dialog = new TextInputDialog();
  839. dialog.setTitle("��� �����");
  840. dialog.setHeaderText("������ ����� ��� ��� ������");
  841. if (!cancle)
  842. try {
  843. sellPrice = Double.parseDouble(dialog.showAndWait().get());
  844. } catch (Exception e) {
  845. Alert alert = new Alert(AlertType.WARNING);
  846. alert.setTitle("����� ����");
  847. alert.setHeaderText(null);
  848. alert.setContentText("������ ����� ��� �����");
  849. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  850. stage.getIcons().add(new Image("/application/images/icon.png"));
  851. alert.showAndWait();
  852. cancle = true;
  853. }
  854. //
  855.  
  856. // show Calender dialog
  857. Dialog<LocalDate> dateDialog = new Dialog<>();
  858. try {
  859. dateDialog.setTitle("����� ������ ������");
  860. dateDialog.setHeaderText("������ ����� ����� ������ ������");
  861. Stage stage = (Stage) dateDialog.getDialogPane().getScene().getWindow();
  862. stage.getIcons().add(new Image("/application/images/icon.png"));
  863.  
  864. DatePicker datePicker = new DatePicker();
  865. dateDialog.getDialogPane().setContent(datePicker);
  866.  
  867. ButtonType buttonTypeOk = new ButtonType("�����", ButtonData.OK_DONE);
  868. dateDialog.getDialogPane().getButtonTypes().add(buttonTypeOk);
  869.  
  870. dateDialog.setResultConverter(new Callback<ButtonType, LocalDate>() {
  871. @Override
  872. public LocalDate call(ButtonType b) {
  873.  
  874. if (b == buttonTypeOk) {
  875.  
  876. return datePicker.getValue();
  877. }
  878.  
  879. return null;
  880. }
  881. });
  882.  
  883. if (!cancle)
  884. expDate = dateDialog.showAndWait().get();
  885. } catch (Exception e) {
  886. Alert alert = new Alert(AlertType.WARNING);
  887. alert.setTitle("����� ����");
  888. alert.setHeaderText(null);
  889. alert.setContentText("������ ����� ����� ������ ������");
  890. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  891. stage.getIcons().add(new Image("/application/images/icon.png"));
  892. alert.showAndWait();
  893. cancle = true;
  894. }
  895.  
  896. }
  897. }
  898.  
  899. if (!cancle)
  900. data.add(new Item(barcode, itemName, quant, buyPrice, sellPrice, expDate, buyPrice * quant,
  901. sellPrice * quant));
  902.  
  903. table.refresh();
  904. barcodeReader.clear();
  905.  
  906. }
  907. }
  908.  
  909. @Override
  910. public void initialize(URL location, ResourceBundle resources) {
  911. Platform.runLater(() -> barcodeReader.requestFocus());
  912. billDate.setValue(LocalDate.now());
  913.  
  914. table.setItems(data);
  915.  
  916. barcodeColumn.setCellValueFactory(new PropertyValueFactory<>("barcode"));
  917. itemColumn.setCellValueFactory(new PropertyValueFactory<>("name"));
  918. quantityColumn.setCellValueFactory(new PropertyValueFactory<>("quant"));
  919. buyPriceColumn.setCellValueFactory(new PropertyValueFactory<>("buyPrice"));
  920. sellPriceColumn.setCellValueFactory(new PropertyValueFactory<>("sellPrice"));
  921. TotalBuyPriceColumn.setCellValueFactory(new PropertyValueFactory<>("totalBP"));
  922. TotalSellPriceColumn.setCellValueFactory(new PropertyValueFactory<>("totalSP"));
  923.  
  924. Connection connection;
  925. try {
  926. connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "imad", "11");
  927. Statement statement = connection.createStatement();
  928. String q = "select supplier_name from supplier";
  929. ResultSet rs = statement.executeQuery(q);
  930. while (rs.next()) {
  931. supplierNamesForAutoComplete.add(rs.getString("supplier_name"));
  932. }
  933. TextFields.bindAutoCompletion(distName, supplierNamesForAutoComplete);
  934.  
  935. q = "select name from stored";
  936. rs = statement.executeQuery(q);
  937. while (rs.next()) {
  938. itemNamesForAutoComplete.add(rs.getString("name"));
  939. }
  940.  
  941. } catch (SQLException e) {
  942. // TODO Auto-generated catch block
  943. e.printStackTrace();
  944. }
  945.  
  946. }
  947.  
  948. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement