Advertisement
Guest User

Untitled

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