Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 43.50 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", "ahmad",
  116. "112233");
  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 * from stored where 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. char x = bar.charAt(bar.length() - 1);
  171. if(x!='9')
  172. x++;
  173. else x='0';
  174. char y=bar.charAt(bar.length()-2);
  175. if(x-1=='9'&&y!='9')y++;
  176. else y='0';
  177.  
  178.  
  179. char z=bar.charAt(bar.length()-3);
  180. if(x-1=='9'&&y-1=='9')z++;
  181.  
  182.  
  183. String bar2 = "";
  184. for (int j = 0; j < bar.length() - 1; j++)
  185. bar2 += bar.charAt(j);
  186.  
  187. bar2 +=z;
  188. bar2+=y;
  189. bar2+=x;
  190. q = "select * from stored where name ='" + data.get(i).getName() + "'";
  191. rs = statement.executeQuery(q);
  192. while (rs.next()) {
  193. count++;
  194. }
  195.  
  196. if (count != 0) {
  197. q = "update stored set quantity=quantity+" + data.get(i).getQuant() + " where name='"
  198. + data.get(i).getName() + "'";
  199. statement.executeUpdate(q);
  200. q = "update stored set exp_date=TO_DATE('" + data.get(i).getExpDate()
  201. + "','YYYY-MM-DD') where name = '" + data.get(i).getName() + "'";
  202. statement.executeUpdate(q);
  203. } else {
  204. q = "insert into stored values (" + data.get(i).getSellPrice() + ",'" + bar2 + "','"
  205. + data.get(i).getName() + "'," + data.get(i).getBuyPrice() + ","
  206. + data.get(i).getQuant() + ",TO_DATE('" + data.get(i).getExpDate()
  207. + "','YYYY-MM-DD'))";
  208. statement.executeUpdate(q);
  209.  
  210. }
  211.  
  212. }
  213.  
  214. }
  215.  
  216. }
  217. // if name of supplier exists
  218. else {
  219. q = "select * from supplier where supplier_name ='" + distName.getText() + "'";
  220. ResultSet rs = statement.executeQuery(q);
  221. int count = 0;
  222. while (rs.next()) {
  223. count++;
  224. }
  225. if (count == 0) {
  226. q = "insert into supplier values('" + distName.getText() + "','" + distPhone.getText() + "')";
  227. statement.executeUpdate(q);
  228. }
  229. // till here i had insert the name of supplier if it doesnt Exist
  230.  
  231. for (int i = 0; i < data.size(); i++) {
  232.  
  233. if (!data.get(i).getBarcode().equals("")) {
  234.  
  235. q = "select * from bought where barcode ='" + data.get(i).getBarcode() + "'";
  236. rs = statement.executeQuery(q);
  237. count = 0;
  238. while (rs.next()) {
  239. count++;
  240. }
  241. if (count == 0) {
  242. q = "insert into bought values(" + data.get(i).getSellPrice() + ",'"
  243. + data.get(i).getBarcode() + "','" + data.get(i).getName() + "',"
  244. + data.get(i).getBuyPrice() + ")";
  245. statement.executeUpdate(q);
  246. q = "insert into buying_bill values('" + data.get(i).getBarcode() + "',TO_DATE('"
  247. + LocalDate.now() + "','YYYY-MM-DD')," + data.get(i).getQuant() + ",'"
  248. + distName.getText() + "')";
  249. statement.executeUpdate(q);
  250.  
  251. count = 0;
  252. q = "select * from stored where barcode='" + data.get(i).getBarcode() + "'";
  253. rs = statement.executeQuery(q);
  254. while (rs.next()) {
  255. count++;
  256. }
  257.  
  258. if (count != 0) {
  259. q = "update stored set quantity=quantity+" + data.get(i).getQuant() + "where barcode='"
  260. + data.get(i).getBarcode() + "'";
  261. statement.executeUpdate(q);
  262. q = "update stored set exp_date=TO_DATE('" + data.get(i).getExpDate()
  263. + "','YYYY-MM-DD') where name = '" + data.get(i).getName() + "'";
  264. statement.executeUpdate(q);
  265. }
  266.  
  267. else {
  268. q = "insert into stored values (" + data.get(i).getSellPrice() + ",'"
  269. + data.get(i).getBarcode() + "','" + data.get(i).getName() + "',"
  270. + data.get(i).getBuyPrice() + "," + data.get(i).getQuant() + ",TO_DATE('"
  271. + data.get(i).getExpDate() + "','YYYY-MM-DD'))";
  272. statement.executeUpdate(q);
  273.  
  274. }
  275.  
  276. }
  277.  
  278. else {
  279. q = "insert into buying_bill values('" + data.get(i).getBarcode() + "',TO_DATE('"
  280. + LocalDate.now() + "','YYYY-MM-DD')," + data.get(i).getQuant() + ",'"
  281. + distName.getText() + "')";
  282. statement.executeUpdate(q);
  283.  
  284. if (count != 0) {
  285. q = "update stored set quantity=quantity+" + data.get(i).getQuant() + "where barcode='"
  286. + data.get(i).getBarcode() + "'";
  287. statement.executeUpdate(q);
  288. q = "update stored set exp_date=TO_DATE('" + data.get(i).getExpDate()
  289. + "','YYYY-MM-DD') where name = '" + data.get(i).getName() + "'";
  290. statement.executeUpdate(q);
  291. } else {
  292. q = "insert into stored values (" + data.get(i).getSellPrice() + ",'"
  293. + data.get(i).getName() + "','" + data.get(i).getName() + "',"
  294. + data.get(i).getBuyPrice() + "," + data.get(i).getQuant() + ",TO_DATE('"
  295. + data.get(i).getExpDate() + "','YYYY-MM-DD'))";
  296. statement.executeUpdate(q);
  297.  
  298. }
  299.  
  300. }
  301.  
  302. }
  303.  
  304. else {
  305. // here if supplier exists but barcode doesn't
  306. int countb = 0;
  307. int count2 = 0;
  308. int count3 = 0;
  309. q = "select * from stored where barcode between '0000000000000'and '0000000001000'";
  310. ResultSet rss = statement.executeQuery(q);
  311. String bar = "";
  312. if (!rss.next())
  313. bar = "0000000000000";
  314. else
  315. rss.previous();
  316. while (rss.next()) {
  317. bar = rss.getString("barcode");
  318. }
  319. char x = bar.charAt(bar.length() - 1);
  320. if(x!='9')
  321. x++;
  322. else x='0';
  323. char y=bar.charAt(bar.length()-2);
  324. if(x-1=='9'&&y!='9')y++;
  325. else y='0';
  326.  
  327.  
  328. char z=bar.charAt(bar.length()-3);
  329. if(x-1=='9'&&y-1=='9')z++;
  330.  
  331.  
  332. String bar2 = "";
  333. for (int j = 0; j < bar.length() - 1; j++)
  334. bar2 += bar.charAt(j);
  335.  
  336. bar2 +=z;
  337. bar2+=y;
  338. bar2+=x;
  339. q = "select * from stored where name ='" + data.get(i).getName() + "'";
  340. rss = statement.executeQuery(q);
  341. while (rss.next()) {
  342. countb++;
  343. }
  344.  
  345. if (countb != 0) {
  346. q = "update stored set quantity=quantity+" + data.get(i).getQuant() + " where name='"
  347. + data.get(i).getName() + "'";
  348. statement.executeUpdate(q);
  349. q = "update stored set exp_date=TO_DATE('" + data.get(i).getExpDate()
  350. + "','YYYY-MM-DD') where name = '" + data.get(i).getName() + "'";
  351. statement.executeUpdate(q);
  352. q = "insert into buying_bill values('" + bar2 + "',TO_DATE('" + LocalDate.now()
  353. + "','YYYY-MM-DD')," + data.get(i).getQuant() + ",'" + distName.getText() + "')";
  354. statement.executeUpdate(q);
  355. } else {
  356. q = "insert into stored values (" + data.get(i).getSellPrice() + ",'" + bar2 + "','"
  357. + data.get(i).getName() + "'," + data.get(i).getBuyPrice() + ","
  358. + data.get(i).getQuant() + ",TO_DATE('" + data.get(i).getExpDate()
  359. + "','YYYY-MM-DD'))";
  360. statement.executeUpdate(q);
  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.  
  366. q = "select * from bought where name='" + data.get(i).getName() + "'";
  367. ResultSet rs3 = statement.executeQuery(q);
  368. int count4 = 0;
  369. while (rs3.next()) {
  370. count4++;
  371. }
  372. if (count4 == 0) {
  373. q = "insert into bought values(" + data.get(i).getSellPrice() + ",'" + bar2 + "','"
  374. + data.get(i).getName() + "'," + data.get(i).getBuyPrice() + ")";
  375. statement.executeUpdate(q);
  376. }
  377.  
  378. }
  379.  
  380. }
  381.  
  382. }
  383.  
  384. data.clear();
  385. table.refresh();
  386.  
  387. }
  388.  
  389. else {
  390. data.clear();
  391. table.refresh();
  392. }
  393.  
  394. }
  395.  
  396. @FXML
  397. void barcodeHandler(KeyEvent event) throws SQLException {
  398. String barcode = "", itemName = "";
  399. int quant = 0;
  400. double buyPrice = 0, sellPrice = 0, totalBP = 0, totalSP = 0;
  401. LocalDate expDate = null;
  402. boolean cancle = false;
  403.  
  404. if (event.getSource().toString().contains("barcodeReader"))
  405. if (event.getCode().equals(KeyCode.ENTER)) {
  406. barcode = barcodeReader.getText();
  407.  
  408. // Data Base Query
  409. DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
  410. Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "ahmad",
  411. "112233");
  412. Statement statement = connection.createStatement();
  413. String q = "";
  414.  
  415. // barcode written
  416. if (!barcodeReader.getText().equals("")) {
  417. int count = 0;
  418. q = "select * from stored where barcode='" + barcodeReader.getText() + "'";
  419. ResultSet rs = statement.executeQuery(q);
  420. while (rs.next()) {
  421. count++;
  422. }
  423.  
  424. if (count == 0) {
  425. // barcode is new
  426. Dialog<String> nameDialog = new Dialog<>();
  427. try {
  428. nameDialog.setTitle("اسم السلعة");
  429. nameDialog.setHeaderText("الرجاء ادخال اسم السلعة");
  430.  
  431. Stage stage2 = (Stage) nameDialog.getDialogPane().getScene().getWindow();
  432. stage2.getIcons().add(new Image("/application/images/icon.png"));
  433.  
  434. TextField nameTF = new TextField("");
  435. TextFields.bindAutoCompletion(nameTF, itemNamesForAutoComplete);
  436. nameDialog.getDialogPane().setContent(nameTF);
  437.  
  438. ButtonType buttonTypeOk2 = new ButtonType("تأكيد", ButtonData.OK_DONE);
  439. nameDialog.getDialogPane().getButtonTypes().add(buttonTypeOk2);
  440.  
  441. nameDialog.setResultConverter(new Callback<ButtonType, String>() {
  442. @Override
  443. public String call(ButtonType b) {
  444.  
  445. if (b == buttonTypeOk2) {
  446. return nameTF.getText();
  447. }
  448.  
  449. return null;
  450. }
  451. });
  452.  
  453. itemName = nameDialog.showAndWait().get();
  454. if (itemName.equals(""))
  455. throw new Exception();
  456.  
  457. } catch (Exception e) {
  458. Alert alert = new Alert(AlertType.WARNING);
  459. alert.setTitle("اسم خاطئ");
  460. alert.setHeaderText(null);
  461. alert.setContentText("الرجاء إدخال اسم السلعة");
  462. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  463. stage.getIcons().add(new Image("/application/images/icon.png"));
  464. alert.showAndWait();
  465. cancle = true;
  466.  
  467. }
  468. //////
  469.  
  470. TextInputDialog dialog = new TextInputDialog();
  471. //
  472. dialog = new TextInputDialog();
  473. dialog.setTitle("الكمية");
  474. dialog.setHeaderText("الرجاء إدخال الكمية");
  475. if (!cancle)
  476. try {
  477. quant = Integer.parseInt(dialog.showAndWait().get());
  478. } catch (Exception e) {
  479. Alert alert = new Alert(AlertType.WARNING);
  480. alert.setTitle("إدخال خاطئ");
  481. alert.setHeaderText(null);
  482. alert.setContentText("الرجاء إدخال الكمية");
  483. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  484. stage.getIcons().add(new Image("/application/images/icon.png"));
  485. alert.showAndWait();
  486. cancle = true;
  487. }
  488. //
  489. dialog = new TextInputDialog();
  490. dialog.setTitle("سعر الشراء");
  491. dialog.setHeaderText("الرجاء إدخال سعر شراء الوحدة");
  492. if (!cancle)
  493. try {
  494. buyPrice = Double.parseDouble(dialog.showAndWait().get());
  495. } catch (Exception e) {
  496. Alert alert = new Alert(AlertType.WARNING);
  497. alert.setTitle("إدخال خاطئ");
  498. alert.setHeaderText(null);
  499. alert.setContentText("الرجاء إدخال سعر الشراء");
  500. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  501. stage.getIcons().add(new Image("/application/images/icon.png"));
  502. alert.showAndWait();
  503. cancle = true;
  504. }
  505. //
  506. dialog = new TextInputDialog();
  507. dialog.setTitle("سعر البيع");
  508. dialog.setHeaderText("الرجاء إدخال سعر بيع الوحدة");
  509. if (!cancle)
  510. try {
  511. sellPrice = Double.parseDouble(dialog.showAndWait().get());
  512. } catch (Exception e) {
  513. Alert alert = new Alert(AlertType.WARNING);
  514. alert.setTitle("إدخال خاطئ");
  515. alert.setHeaderText(null);
  516. alert.setContentText("الرجاء إدخال سعر البيع");
  517. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  518. stage.getIcons().add(new Image("/application/images/icon.png"));
  519. alert.showAndWait();
  520. cancle = true;
  521. }
  522. //
  523. // show Calender dialog
  524. Dialog<LocalDate> dateDialog = new Dialog<>();
  525. try {
  526. dateDialog.setTitle("تاريخ انتهاء السلعة");
  527. dateDialog.setHeaderText("الرجاء ادخال تاريخ انتهاء السلعة");
  528. Stage stage = (Stage) dateDialog.getDialogPane().getScene().getWindow();
  529. stage.getIcons().add(new Image("/application/images/icon.png"));
  530.  
  531. DatePicker datePicker = new DatePicker();
  532. dateDialog.getDialogPane().setContent(datePicker);
  533.  
  534. ButtonType buttonTypeOk = new ButtonType("تأكيد", ButtonData.OK_DONE);
  535. dateDialog.getDialogPane().getButtonTypes().add(buttonTypeOk);
  536.  
  537. dateDialog.setResultConverter(new Callback<ButtonType, LocalDate>() {
  538. @Override
  539. public LocalDate call(ButtonType b) {
  540.  
  541. if (b == buttonTypeOk) {
  542.  
  543. return datePicker.getValue();
  544. }
  545.  
  546. return null;
  547. }
  548. });
  549.  
  550. if (!cancle)
  551. expDate = dateDialog.showAndWait().get();
  552. } catch (Exception e) {
  553. Alert alert = new Alert(AlertType.WARNING);
  554. alert.setTitle("إدخال خاطئ");
  555. alert.setHeaderText(null);
  556. alert.setContentText("الرجاء إدخال تاريخ إنتهاء السلعة");
  557. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  558. stage.getIcons().add(new Image("/application/images/icon.png"));
  559. alert.showAndWait();
  560. cancle = true;
  561. }
  562.  
  563. } else {
  564. rs = statement.executeQuery(q);
  565.  
  566. TextInputDialog dialog = new TextInputDialog();
  567. //
  568. dialog = new TextInputDialog();
  569. dialog.setTitle("الكمية");
  570. dialog.setHeaderText("الرجاء إدخال الكمية");
  571. if (!cancle)
  572. try {
  573. quant = Integer.parseInt(dialog.showAndWait().get());
  574. } catch (Exception e) {
  575. Alert alert = new Alert(AlertType.WARNING);
  576. alert.setTitle("إدخال خاطئ");
  577. alert.setHeaderText(null);
  578. alert.setContentText("الرجاء إدخال الكمية");
  579. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  580. stage.getIcons().add(new Image("/application/images/icon.png"));
  581. alert.showAndWait();
  582. cancle = true;
  583. }
  584. //
  585. // show Calender dialog
  586. Dialog<LocalDate> dateDialog = new Dialog<>();
  587. try {
  588. dateDialog.setTitle("تاريخ انتهاء السلعة");
  589. dateDialog.setHeaderText("الرجاء ادخال تاريخ انتهاء السلعة");
  590. Stage stage = (Stage) dateDialog.getDialogPane().getScene().getWindow();
  591. stage.getIcons().add(new Image("/application/images/icon.png"));
  592.  
  593. DatePicker datePicker = new DatePicker();
  594. dateDialog.getDialogPane().setContent(datePicker);
  595.  
  596. ButtonType buttonTypeOk = new ButtonType("تأكيد", ButtonData.OK_DONE);
  597. dateDialog.getDialogPane().getButtonTypes().add(buttonTypeOk);
  598.  
  599. dateDialog.setResultConverter(new Callback<ButtonType, LocalDate>() {
  600. @Override
  601. public LocalDate call(ButtonType b) {
  602.  
  603. if (b == buttonTypeOk) {
  604.  
  605. return datePicker.getValue();
  606. }
  607.  
  608. return null;
  609. }
  610. });
  611.  
  612. if (!cancle)
  613. expDate = dateDialog.showAndWait().get();
  614. } catch (Exception e) {
  615. Alert alert = new Alert(AlertType.WARNING);
  616. alert.setTitle("إدخال خاطئ");
  617. alert.setHeaderText(null);
  618. alert.setContentText("الرجاء إدخال تاريخ إنتهاء السلعة");
  619. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  620. stage.getIcons().add(new Image("/application/images/icon.png"));
  621. alert.showAndWait();
  622. cancle = true;
  623. }
  624.  
  625. sellPrice = rs.getDouble("sell_price");
  626. buyPrice = rs.getDouble("buy_price");
  627. itemName = rs.getString("Name");
  628.  
  629. }
  630. }
  631. // barcode not written
  632. else {
  633. // ask for the name
  634. ////////
  635. Dialog<String> nameDialog = new Dialog<>();
  636. try {
  637. nameDialog.setTitle("اسم السلعة");
  638. nameDialog.setHeaderText("الرجاء ادخال اسم السلعة");
  639.  
  640. Stage stage2 = (Stage) nameDialog.getDialogPane().getScene().getWindow();
  641. stage2.getIcons().add(new Image("/application/images/icon.png"));
  642.  
  643. TextField nameTF = new TextField("");
  644. TextFields.bindAutoCompletion(nameTF, itemNamesForAutoComplete);
  645. nameDialog.getDialogPane().setContent(nameTF);
  646.  
  647. ButtonType buttonTypeOk2 = new ButtonType("تأكيد", ButtonData.OK_DONE);
  648. nameDialog.getDialogPane().getButtonTypes().add(buttonTypeOk2);
  649.  
  650. nameDialog.setResultConverter(new Callback<ButtonType, String>() {
  651. @Override
  652. public String call(ButtonType b) {
  653.  
  654. if (b == buttonTypeOk2) {
  655.  
  656. return nameTF.getText();
  657. }
  658.  
  659. return null;
  660. }
  661. });
  662.  
  663. itemName = nameDialog.showAndWait().get();
  664. if (itemName.equals(""))
  665. throw new Exception();
  666.  
  667. } catch (Exception e) {
  668. Alert alert = new Alert(AlertType.WARNING);
  669. alert.setTitle("اسم خاطئ");
  670. alert.setHeaderText(null);
  671. alert.setContentText("الرجاء إدخال اسم السلعة");
  672. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  673. stage.getIcons().add(new Image("/application/images/icon.png"));
  674. alert.showAndWait();
  675. cancle = true;
  676.  
  677. }
  678. q = "select * from stored where name='" + itemName + "'";
  679. int count = 0;
  680. ResultSet rs = statement.executeQuery(q);
  681. while (rs.next()) {
  682. count++;
  683. }
  684.  
  685. if (count != 0) {
  686. // ask for date & quant
  687. rs = statement.executeQuery(q);
  688. rs.next();
  689. sellPrice = rs.getDouble("sell_price");
  690. buyPrice = rs.getDouble("buy_price");
  691. TextInputDialog dialog = new TextInputDialog();
  692.  
  693. //
  694. dialog = new TextInputDialog();
  695. dialog.setTitle("الكمية");
  696. dialog.setHeaderText("الرجاء إدخال الكمية");
  697. if (!cancle)
  698. try {
  699. quant = Integer.parseInt(dialog.showAndWait().get());
  700. } catch (Exception e) {
  701. Alert alert = new Alert(AlertType.WARNING);
  702. alert.setTitle("إدخال خاطئ");
  703. alert.setHeaderText(null);
  704. alert.setContentText("الرجاء إدخال الكمية");
  705. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  706. stage.getIcons().add(new Image("/application/images/icon.png"));
  707. alert.showAndWait();
  708. cancle = true;
  709. }
  710. //
  711. // show Calender dialog
  712. Dialog<LocalDate> dateDialog = new Dialog<>();
  713. try {
  714. dateDialog.setTitle("تاريخ انتهاء السلعة");
  715. dateDialog.setHeaderText("الرجاء ادخال تاريخ انتهاء السلعة");
  716. Stage stage = (Stage) dateDialog.getDialogPane().getScene().getWindow();
  717. stage.getIcons().add(new Image("/application/images/icon.png"));
  718.  
  719. DatePicker datePicker = new DatePicker();
  720. dateDialog.getDialogPane().setContent(datePicker);
  721.  
  722. ButtonType buttonTypeOk = new ButtonType("تأكيد", ButtonData.OK_DONE);
  723. dateDialog.getDialogPane().getButtonTypes().add(buttonTypeOk);
  724.  
  725. dateDialog.setResultConverter(new Callback<ButtonType, LocalDate>() {
  726. @Override
  727. public LocalDate call(ButtonType b) {
  728.  
  729. if (b == buttonTypeOk) {
  730.  
  731. return datePicker.getValue();
  732. }
  733.  
  734. return null;
  735. }
  736. });
  737.  
  738. if (!cancle)
  739. expDate = dateDialog.showAndWait().get();
  740. } catch (Exception e) {
  741. Alert alert = new Alert(AlertType.WARNING);
  742. alert.setTitle("إدخال خاطئ");
  743. alert.setHeaderText(null);
  744. alert.setContentText("الرجاء إدخال تاريخ إنتهاء السلعة");
  745. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  746. stage.getIcons().add(new Image("/application/images/icon.png"));
  747. alert.showAndWait();
  748. cancle = true;
  749. }
  750.  
  751. }
  752.  
  753. else {
  754. // ask for everything
  755.  
  756. TextInputDialog dialog = new TextInputDialog();
  757.  
  758. //
  759. dialog = new TextInputDialog();
  760. dialog.setTitle("الكمية");
  761. dialog.setHeaderText("الرجاء إدخال الكمية");
  762. if (!cancle)
  763. try {
  764. quant = Integer.parseInt(dialog.showAndWait().get());
  765. } catch (Exception e) {
  766. Alert alert = new Alert(AlertType.WARNING);
  767. alert.setTitle("إدخال خاطئ");
  768. alert.setHeaderText(null);
  769. alert.setContentText("الرجاء إدخال الكمية");
  770. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  771. stage.getIcons().add(new Image("/application/images/icon.png"));
  772. alert.showAndWait();
  773. cancle = true;
  774. }
  775. //
  776. dialog = new TextInputDialog();
  777. dialog.setTitle("سعر الشراء");
  778. dialog.setHeaderText("الرجاء إدخال سعر شراء الوحدة");
  779. if (!cancle)
  780. try {
  781. buyPrice = Double.parseDouble(dialog.showAndWait().get());
  782. } catch (Exception e) {
  783. Alert alert = new Alert(AlertType.WARNING);
  784. alert.setTitle("إدخال خاطئ");
  785. alert.setHeaderText(null);
  786. alert.setContentText("الرجاء إدخال سعر الشراء");
  787. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  788. stage.getIcons().add(new Image("/application/images/icon.png"));
  789. alert.showAndWait();
  790. cancle = true;
  791. }
  792. //
  793. dialog = new TextInputDialog();
  794. dialog.setTitle("سعر البيع");
  795. dialog.setHeaderText("الرجاء إدخال سعر بيع الوحدة");
  796. if (!cancle)
  797. try {
  798. sellPrice = Double.parseDouble(dialog.showAndWait().get());
  799. } catch (Exception e) {
  800. Alert alert = new Alert(AlertType.WARNING);
  801. alert.setTitle("إدخال خاطئ");
  802. alert.setHeaderText(null);
  803. alert.setContentText("الرجاء إدخال سعر البيع");
  804. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  805. stage.getIcons().add(new Image("/application/images/icon.png"));
  806. alert.showAndWait();
  807. cancle = true;
  808. }
  809. //
  810.  
  811. // show Calender dialog
  812. Dialog<LocalDate> dateDialog = new Dialog<>();
  813. try {
  814. dateDialog.setTitle("تاريخ انتهاء السلعة");
  815. dateDialog.setHeaderText("الرجاء ادخال تاريخ انتهاء السلعة");
  816. Stage stage = (Stage) dateDialog.getDialogPane().getScene().getWindow();
  817. stage.getIcons().add(new Image("/application/images/icon.png"));
  818.  
  819. DatePicker datePicker = new DatePicker();
  820. dateDialog.getDialogPane().setContent(datePicker);
  821.  
  822. ButtonType buttonTypeOk = new ButtonType("تأكيد", ButtonData.OK_DONE);
  823. dateDialog.getDialogPane().getButtonTypes().add(buttonTypeOk);
  824.  
  825. dateDialog.setResultConverter(new Callback<ButtonType, LocalDate>() {
  826. @Override
  827. public LocalDate call(ButtonType b) {
  828.  
  829. if (b == buttonTypeOk) {
  830.  
  831. return datePicker.getValue();
  832. }
  833.  
  834. return null;
  835. }
  836. });
  837.  
  838. if (!cancle)
  839. expDate = dateDialog.showAndWait().get();
  840. } catch (Exception e) {
  841. Alert alert = new Alert(AlertType.WARNING);
  842. alert.setTitle("إدخال خاطئ");
  843. alert.setHeaderText(null);
  844. alert.setContentText("الرجاء إدخال تاريخ إنتهاء السلعة");
  845. Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
  846. stage.getIcons().add(new Image("/application/images/icon.png"));
  847. alert.showAndWait();
  848. cancle = true;
  849. }
  850.  
  851. }
  852. }
  853.  
  854. if (!cancle)
  855. data.add(new Item(barcode, itemName, quant, buyPrice, sellPrice, expDate, buyPrice * quant,
  856. sellPrice * quant));
  857.  
  858. table.refresh();
  859. barcodeReader.clear();
  860.  
  861. }
  862. }
  863.  
  864. @Override
  865. public void initialize(URL location, ResourceBundle resources) {
  866. Platform.runLater(() -> barcodeReader.requestFocus());
  867. billDate.setValue(LocalDate.now());
  868.  
  869. table.setItems(data);
  870.  
  871. barcodeColumn.setCellValueFactory(new PropertyValueFactory<>("barcode"));
  872. itemColumn.setCellValueFactory(new PropertyValueFactory<>("name"));
  873. quantityColumn.setCellValueFactory(new PropertyValueFactory<>("quant"));
  874. buyPriceColumn.setCellValueFactory(new PropertyValueFactory<>("buyPrice"));
  875. sellPriceColumn.setCellValueFactory(new PropertyValueFactory<>("sellPrice"));
  876. TotalBuyPriceColumn.setCellValueFactory(new PropertyValueFactory<>("totalBP"));
  877. TotalSellPriceColumn.setCellValueFactory(new PropertyValueFactory<>("totalSP"));
  878.  
  879. Connection connection;
  880. try {
  881. connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "ahmad", "112233");
  882. Statement statement = connection.createStatement();
  883. String q = "select supplier_name from supplier";
  884. ResultSet rs = statement.executeQuery(q);
  885. while (rs.next()) {
  886. supplierNamesForAutoComplete.add(rs.getString("supplier_name"));
  887. }
  888. TextFields.bindAutoCompletion(distName, supplierNamesForAutoComplete);
  889.  
  890. q = "select name from stored";
  891. rs = statement.executeQuery(q);
  892. while (rs.next()) {
  893. itemNamesForAutoComplete.add(rs.getString("name"));
  894. }
  895.  
  896. } catch (SQLException e) {
  897. // TODO Auto-generated catch block
  898. e.printStackTrace();
  899. }
  900.  
  901. }
  902.  
  903. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement