Advertisement
Guest User

Untitled

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