Advertisement
Guest User

Untitled

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