PageRenderTime 60ms CodeModel.GetById 14ms RepoModel.GetById 1ms app.codeStats 0ms

/java_backend/src/Database/DbConnect.java

https://github.com/HSR01/KBS_JAVA
Java | 1762 lines | 1294 code | 206 blank | 262 comment | 120 complexity | b6c33d61098988b0b093fe6d509ca9e7 MD5 | raw file

Large files files are truncated, but you can click here to view the full file

  1. package Database;
  2. import Geolocatie.MultipleAdressesFoundException;
  3. import Geolocatie.Coordinaten;
  4. import Financien.Financien;
  5. import Geolocatie.Geocoding;
  6. import java.sql.*;
  7. import java.text.DateFormat;
  8. import java.text.ParseException;
  9. import java.text.SimpleDateFormat;
  10. import java.util.ArrayList;
  11. import java.util.Calendar;
  12. import java.util.logging.Level;
  13. import java.util.logging.Logger;
  14. import java_backend.Feedback;
  15. import java_backend.Koerier;
  16. import java_backend.Locatie;
  17. import java_backend.Persoon;
  18. import java_backend.Traject;
  19. import javax.swing.JOptionPane;
  20. /**
  21. * @author Daniel
  22. */
  23. public class DbConnect {
  24. //Initializeer connection, statement en result.
  25. private Connection con;
  26. private Statement st;
  27. private ResultSet rs;
  28. private String persoontabel = "LocatieID, Voornaam, Tussenvoegsel, Achternaam, Emailadres, Wachtwoord, Geboortedatum, Mobielnummer, Profielfoto, IBAN";
  29. private String locatie = "Latitude, Longitude, Plaatsnaam, Straatnaam, Huisnummer, Toevoeging, Postcode, Telefoonnummer, TZTPoint";
  30. private String tabel;
  31. //Server url
  32. String url = "jdbc:mysql://server48.firstfind.nl/vanderbe-2?allowMultiQuery=true";
  33. //Server login naam
  34. String user = "vanderbe";
  35. //Server wachtwoord
  36. String pasw = "Daniel26061990";
  37. //Query holder
  38. String query = "";
  39. public DbConnect() {
  40. //Probeer mysql driver te laden
  41. try {
  42. Class.forName("com.mysql.jdbc.Driver");
  43. con = DriverManager.getConnection(url, user, pasw);
  44. st = con.createStatement();
  45. //Afvangen fouten voor database connectie
  46. } catch (SQLException ex) {
  47. System.out.println("Problemen met verbinding.");
  48. } catch (Exception ex) {
  49. System.out.println("Onbekende error");
  50. }
  51. }
  52. /**
  53. * Controleerd of verbinding goed is of niet adhv dbconnect.
  54. *
  55. * @return Boolean
  56. * @author Jelle
  57. */
  58. public boolean checkConnection() {
  59. //als st niet null is is connection actief.
  60. if (st != null) {
  61. return true;
  62. } else {
  63. //bij null stuur false, omdat connectie niet actief is.
  64. return false;
  65. }
  66. }
  67. public void getData() {
  68. //Query voor uitlezen!!!!----->
  69. try {
  70. //Select query
  71. query = "SELECT * FROM test";
  72. //Select kolom
  73. String kolom = "YOLO";
  74. //Query uitvoeren
  75. rs = st.executeQuery(query);
  76. //Loop door de query data heen
  77. while (rs.next()) {
  78. String content = rs.getString(kolom);
  79. System.out.println(content);
  80. }
  81. //Afvangen fouten voor getdata
  82. } catch (Exception ea) {
  83. System.out.println("Query lees ERROR: " + ea);
  84. }
  85. }
  86. public Object[][] getUsers() {
  87. try {
  88. //get aantal personen.
  89. rs = st.executeQuery("Select Count(*) from Persoon");
  90. int aantal = 0;
  91. while (rs.next()) {
  92. aantal = rs.getInt("Count(*)");
  93. }
  94. //haal alles op.
  95. Object[][] returnval = new Object[aantal][11];
  96. query = "SELECT * from Persoon";
  97. rs = st.executeQuery(query);
  98. int i = 0;
  99. while (rs.next()) {
  100. returnval[i][0] = rs.getString("PersoonID");
  101. returnval[i][1] = rs.getString("Voornaam");
  102. returnval[i][2] = rs.getString("Tussenvoegsel");
  103. returnval[i][3] = rs.getString("Achternaam");
  104. returnval[i][4] = rs.getString("Emailadres");
  105. returnval[i][5] = rs.getString("Wachtwoord");
  106. returnval[i][6] = rs.getString("Geboortedatum");
  107. returnval[i][7] = rs.getString("Mobielnummer");
  108. returnval[i][8] = rs.getString("Profielfoto");
  109. returnval[i][9] = rs.getString("IBAN");
  110. returnval[i][10] = rs.getString("Rechten");
  111. i++;
  112. }
  113. return returnval;
  114. } catch (Exception e) {
  115. System.out.println("error : " + e.getClass());
  116. }
  117. return null;
  118. }
  119. /**
  120. * Haal de personen op die een locatie hebben met coordinaten
  121. *
  122. * @param Achternaam Filter op achternaam
  123. * @return Object met personen <UL> <LI>PersoonID</LI> <LI>Voornaam</LI>
  124. * <LI>Tussenvoegel</LI> <LI>Achternaam</LI> <LI>Postcode</LI>
  125. * <LI>Huisnummer</LI> <LI>IBAN</LI> </UL>
  126. */
  127. public Object[][] getPersonenWithCoordinates(String Achternaam) {
  128. try {
  129. //get aantal personen.
  130. String query = "SELECT COUNT(*) from Persoon p "
  131. + "JOIN Locatie l ON p.LocatieID = l.LocatieID "
  132. + "WHERE l.Latitude IS NOT NULL "
  133. + "AND l.Longitude IS NOT NULL ";
  134. if (!Achternaam.equals("")) {
  135. query += "AND p.Achternaam = '" + Achternaam + "'";
  136. }
  137. rs = st.executeQuery(query);
  138. int aantal = 0;
  139. while (rs.next()) {
  140. aantal = rs.getInt("COUNT(*)");
  141. }
  142. //haal alles op.
  143. Object[][] returnval = new Object[aantal][8];
  144. query = "SELECT p.PersoonID, p.Voornaam, p.Tussenvoegsel, p.Achternaam, l.Postcode, l.Huisnummer, l.Toevoeging, p.IBAN "
  145. + "FROM Persoon p "
  146. + "JOIN Locatie l ON p.LocatieID = l.LocatieID "
  147. + "WHERE l.Latitude IS NOT NULL "
  148. + "AND l.Longitude IS NOT NULL ";
  149. if (!Achternaam.equals("")) {
  150. query += "AND p.Achternaam = '" + Achternaam + "'";
  151. }
  152. rs = st.executeQuery(query);
  153. int i = 0;
  154. while (rs.next()) {
  155. returnval[i][0] = rs.getString("PersoonID");
  156. returnval[i][1] = rs.getString("Voornaam");
  157. returnval[i][2] = rs.getString("Tussenvoegsel");
  158. returnval[i][3] = rs.getString("Achternaam");
  159. returnval[i][4] = rs.getString("Postcode");
  160. returnval[i][5] = rs.getString("Huisnummer");
  161. returnval[i][6] = rs.getString("Toevoeging");
  162. returnval[i][7] = rs.getString("IBAN");
  163. i++;
  164. }
  165. return returnval;
  166. } catch (Exception e) {
  167. System.out.println("error : " + e.getClass());
  168. }
  169. return null;
  170. }
  171. public Object[][] getPakketPersoon(int ID) {
  172. try {
  173. //get aantal personen.
  174. rs = st.executeQuery("Select count(*) from Persoon");
  175. int aantal = 0;
  176. while (rs.next()) {
  177. aantal = rs.getInt("Count(*)");
  178. }
  179. //haal alles op.
  180. Object[][] returnval = new Object[aantal][7];
  181. query = "SELECT P.PersoonID, P.Voornaam, P.Tussenvoegsel, P.Achternaam, Tr.TrajectID, Tr.Begin, Tr.Eind FROM Persoon P JOIN Traject_BPS T ON P.PersoonID = T.PersoonID JOIN Traject Tr ON T.TrajectID = Tr.TrajectID WHERE P.PersoonID = \"" + ID + "\"";
  182. rs = st.executeQuery(query);
  183. int i = 0;
  184. while (rs.next()) {
  185. returnval[i][0] = rs.getString("PersoonID");
  186. returnval[i][1] = rs.getString("Voornaam");
  187. returnval[i][2] = rs.getString("Tussenvoegsel");
  188. returnval[i][3] = rs.getString("Achternaam");
  189. returnval[i][4] = rs.getString("TrajectID");
  190. returnval[i][5] = rs.getString("Begin");
  191. returnval[i][6] = rs.getString("Eind");
  192. i++;
  193. }
  194. return returnval;
  195. } catch (Exception e) {
  196. System.out.println("error : " + e.getClass());
  197. }
  198. return null;
  199. }
  200. public Object[][] getPersonen(int ID) {
  201. try {
  202. //get aantal personen.
  203. rs = st.executeQuery("SELECT Count(*) FROM Persoon P JOIN Traject_BPS T ON P.PersoonID = T.PersoonID JOIN Traject Tr ON T.TrajectID = Tr.TrajectID WHERE P.PersoonID = " + ID);
  204. int aantal = 0;
  205. while (rs.next()) {
  206. aantal = rs.getInt("Count(*)");
  207. }
  208. //haal alles op.
  209. Object[][] returnval = new Object[aantal][3];
  210. query = "SELECT Tr.TrajectID, Tr.Begin, Tr.Eind FROM Persoon P JOIN Traject_BPS T ON P.PersoonID = T.PersoonID JOIN Traject Tr ON T.TrajectID = Tr.TrajectID WHERE P.PersoonID = " + ID;
  211. rs = st.executeQuery(query);
  212. int i = 0;
  213. while (rs.next()) {
  214. returnval[i][0] = rs.getString("TrajectID");
  215. returnval[i][1] = rs.getString("Begin");
  216. returnval[i][2] = rs.getString("Eind");
  217. i++;
  218. }
  219. return returnval;
  220. } catch (Exception e) {
  221. System.out.println("error : " + e.getClass());
  222. }
  223. return null;
  224. }
  225. public String[] getSpecifiekeGebruikerGegevens(Object ID) {
  226. // Auteur Dominique
  227. try {
  228. String[] returnval = new String[11];
  229. query = "SELECT * from Persoon Where PersoonID = " + ID;
  230. rs = st.executeQuery(query);
  231. int i = 0;
  232. while (rs.next()) {
  233. returnval[0] = rs.getString("PersoonID");
  234. returnval[1] = rs.getString("Voornaam");
  235. returnval[2] = rs.getString("Tussenvoegsel");
  236. returnval[3] = rs.getString("Achternaam");
  237. returnval[4] = rs.getString("Emailadres");
  238. returnval[5] = rs.getString("Wachtwoord");
  239. returnval[6] = rs.getString("Geboortedatum");
  240. returnval[7] = rs.getString("Mobielnummer");
  241. returnval[8] = rs.getString("Profielfoto");
  242. returnval[9] = rs.getString("IBAN");
  243. returnval[10] = rs.getString("Rechten");
  244. i++;
  245. }
  246. return returnval;
  247. } catch (Exception e) {
  248. System.out.println("error : " + e.getClass());
  249. }
  250. return null;
  251. }
  252. public String[] getSpecifiekeGebruikerLocatie(Object ID) {
  253. // Auteur Dominique
  254. try {
  255. String[] returnval = new String[6];
  256. // Haalt het bijbehorende LocatieID object op.
  257. query = "SELECT LocatieID from Persoon_Locatie Where PersoonID = " + ID;
  258. rs = st.executeQuery(query);
  259. while (rs.next()) {
  260. returnval[0] = rs.getString("LocatieID");
  261. }
  262. // Gebruikt locatieID en haalt de records daarvan uit database
  263. query = "SELECT * from Locatie Where LocatieID = " + returnval[0];
  264. rs = st.executeQuery(query);
  265. while (rs.next()) {
  266. returnval[0] = rs.getString("Plaatsnaam");
  267. returnval[1] = rs.getString("Straatnaam");
  268. returnval[2] = rs.getString("Huisnummer");
  269. returnval[3] = rs.getString("Toevoeging");
  270. returnval[4] = rs.getString("Postcode");
  271. returnval[5] = rs.getString("TZTPoint");
  272. }
  273. return returnval;
  274. } catch (Exception e) {
  275. System.out.println("error : " + e.getClass());
  276. }
  277. return null;
  278. }
  279. public void updateGebruikerAccount(String[] data) {
  280. try {
  281. query = "UPDATE Persoon "
  282. + "SET Voornaam = '" + data[1] + "', "
  283. + "Tussenvoegsel = '" + data[2] + "',"
  284. + "Achternaam = '" + data[3] + "',"
  285. + "Wachtwoord = '" + data[4] + "',"
  286. + "Emailadres = '" + data[5] + "',"
  287. + "Geboortedatum = '" + data[6] + "',"
  288. + "Rechten = '" + data[7] + "',"
  289. + "Mobielnummer = '" + data[8] + "',"
  290. + "IBAN = '" + data[9] + "' "
  291. + "WHERE PersoonID = '" + data[0] + "'";
  292. System.out.println(query);
  293. st.executeUpdate(query);
  294. DbConnect dbc = new DbConnect();
  295. int LocatieID = dbc.getLocatieID("SELECT LocatieID From Persoon where PersoonID = " + data[0]);
  296. query = "UPDATE Locatie "
  297. + "SET Huisnummer = '" + data[10] + "', "
  298. + "Plaatsnaam= '" + data[11] + "', "
  299. + "Straatnaam = '" + data[12] + "', "
  300. + "Toevoeging = '" + data[13] + "', "
  301. + "TZTPoint = '" + data[14] + "', "
  302. + "Postcode = '" + data[15] + "', "
  303. + "Latitude = '" + data[16] + "', "
  304. + "Longitude = '" + data[17] + "' "
  305. + "WHERE LocatieID = '" + LocatieID + "'";
  306. st.executeUpdate(query);
  307. } catch (Exception e) {
  308. System.out.println("error : " + e.getMessage());
  309. }
  310. }
  311. public void updateGebruikerAccount2(String[] data) {
  312. try {
  313. query = "UPDATE Persoon "
  314. + "SET Voornaam = '" + data[1] + "', "
  315. + "Tussenvoegsel = '" + data[2] + "',"
  316. + "Achternaam = '" + data[3] + "',"
  317. + "Emailadres = '" + data[5] + "',"
  318. + "Geboortedatum = '" + data[6] + "',"
  319. + "Rechten = '" + data[7] + "',"
  320. + "Mobielnummer = '" + data[8] + "',"
  321. + "IBAN = '" + data[9] + "' "
  322. + "WHERE PersoonID = '" + data[0] + "'";
  323. st.executeUpdate(query);
  324. DbConnect dbc = new DbConnect();
  325. int LocatieID = dbc.getLocatieID("SELECT LocatieID From Persoon where PersoonID = " + data[0]);
  326. query = "UPDATE Locatie "
  327. + "SET Huisnummer = '" + data[10] + "', "
  328. + "Plaatsnaam= '" + data[11] + "', "
  329. + "Straatnaam = '" + data[12] + "', "
  330. + "Toevoeging = '" + data[13] + "', "
  331. + "TZTPoint = '" + data[14] + "', "
  332. + "Postcode = '" + data[15] + "', "
  333. + "Latitude = '" + data[16] + "', "
  334. + "Longitude = '" + data[17] + "' "
  335. + "WHERE LocatieID = '" + LocatieID + "'";
  336. st.executeUpdate(query);
  337. } catch (Exception e) {
  338. System.out.println("error : " + e.getMessage());
  339. }
  340. }
  341. /**
  342. * Nieuwe verzending opslaan.
  343. *
  344. * @param afzender locatie van de verzender
  345. * @param pakket meegeven data (11 values) is volgorde: <OL start="0">
  346. * <LI>gewicht</LI>
  347. * <LI>omschrijving</LI> </OL>
  348. * @return
  349. */
  350. public Boolean newVerzending(Persoon afzender, Persoon ontvanger, Locatie afzenderlocatie, Locatie ontvangerlocatie, String[] pakket) throws MultipleAdressesFoundException {
  351. String gewicht = pakket[0], omschrijving = pakket[1], afzenderplaats = afzenderlocatie.getPlaatsnaam(),
  352. ontvangerplaats = ontvangerlocatie.getPlaatsnaam(), afzenderstraatnaam = afzenderlocatie.getStraatnaam();
  353. if (afzenderplaats != null && afzenderplaats.substring(0, 3).matches("'s ")) {
  354. afzenderplaats = "Hertogenbosch";
  355. }
  356. if (ontvangerplaats != null && ontvangerplaats.substring(0, 3).matches("'s ")) {
  357. ontvangerplaats = "Hertogenbosch";
  358. }
  359. Geocoding geo = new Geocoding();
  360. int locatieId = -1, persoonId = -1, pakketId = -1, verzendingId = -1;
  361. try {
  362. // INSERT Pakket, get PakketID
  363. String timeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
  364. query = "INSERT INTO Pakket "
  365. + "(PakketID, Gewicht, Prijs, Omschrijving, Datum) "
  366. + "VALUES (0, "
  367. + "'" + gewicht + "',"
  368. + "'0', " // TODO prijsberekening
  369. + "'" + omschrijving + "', "
  370. + "'" + timeStamp + "')";
  371. st.executeUpdate(query, Statement.RETURN_GENERATED_KEYS);
  372. rs = st.getGeneratedKeys();
  373. if (rs.next()) {
  374. pakketId = rs.getInt(1);
  375. } else {
  376. }
  377. rs.close();
  378. rs = null;
  379. // INSERT Verzending, get VerzendingID
  380. query = "INSERT INTO Verzending "
  381. + "(VerzendingID, PakketID, Aankomsttijd, Aflevertijd, Status, KostPrijs) "
  382. + "VALUES (0, "
  383. + pakketId + ", "
  384. + "'" + timeStamp + "', "
  385. + "null, "
  386. + "'0', "
  387. + "0)"; //todo, kostprijs
  388. st.executeUpdate(query, Statement.RETURN_GENERATED_KEYS);
  389. rs = st.getGeneratedKeys();
  390. if (rs.next()) {
  391. verzendingId = rs.getInt(1);
  392. } else {
  393. }
  394. rs.close();
  395. rs = null;
  396. Coordinaten from = afzenderlocatie.getCoordinaten(), to = ontvangerlocatie.getCoordinaten();
  397. Traject compleetTraject;
  398. compleetTraject = geo.GetRouteFrom(from, to);
  399. Koerier k = new Koerier();
  400. Financien financien = new Financien();
  401. // Coordinaten van TZTPoint (station)
  402. Coordinaten fromToTZT, TZTToTo;
  403. fromToTZT = geo.GetNearestTZTPoint(from).getCoordinaten();
  404. TZTToTo = geo.GetNearestTZTPoint(to).getCoordinaten();
  405. Traject Traject1, Traject3;
  406. int stop1, stop2;
  407. Traject1 = geo.GetRouteFrom(from, fromToTZT);
  408. Traject3 = geo.GetRouteFrom(TZTToTo, to);
  409. if (compleetTraject.Meters < 20000
  410. || (financien.BerekenGoedkoopsteKoerier(Traject1.Meters).RitPrijs + financien.BerekenGoedkoopsteKoerier(Traject3.Meters).RitPrijs + 2)
  411. < financien.BerekenGoedkoopsteKoerier(compleetTraject.Meters).RitPrijs) {
  412. k = financien.BerekenGoedkoopsteKoerier(compleetTraject.Meters);
  413. insertTraject(verzendingId, afzenderlocatie.getId(), ontvangerlocatie.getId(), "0:30", compleetTraject.Meters, 0, k.KoerierID);
  414. } else if (compleetTraject.Meters > 20000) {
  415. // 1e gedeelte
  416. k = financien.BerekenGoedkoopsteKoerier(Traject1.Meters);
  417. stop1 = getLocatieId(fromToTZT, true);
  418. insertTraject(verzendingId, afzenderlocatie.getId(), stop1, "2:00", Traject1.Meters, 0, k.KoerierID);
  419. // 2e gedeelte
  420. stop2 = getLocatieId(TZTToTo, true);
  421. insertTraject(verzendingId, stop1, stop2, "0:00", 0, 0, 0);
  422. // 3e gedeelte
  423. k = financien.BerekenGoedkoopsteKoerier(Traject3.Meters);
  424. insertTraject(verzendingId, stop2, locatieId, "2:00", Traject3.Meters, 0, k.KoerierID);
  425. }
  426. int kostprijs = financien.getKostprijs(verzendingId);
  427. query = "UPDATE Verzending set KostPrijs = '" + kostprijs + "' where VerzendingID = '" + verzendingId + "'";
  428. st.executeUpdate(query);
  429. return true;
  430. } catch (Exception e) {
  431. System.out.println("(DbConnect.java) @ newVerzending - Error : " + e.getMessage());
  432. }
  433. return false;
  434. }
  435. public int getLocatieId(Coordinaten coordinaten, boolean isTZT) {
  436. try {
  437. query = "SELECT LocatieID "
  438. + "FROM Locatie "
  439. + "WHERE Latitude = '" + coordinaten.Latitude.toString() + "' "
  440. + "AND Longitude = '" + coordinaten.Longitude.toString() + "' "
  441. + "AND TZTPoint ";
  442. if (isTZT) {
  443. query += "= 1";
  444. } else {
  445. query += "!= 0";
  446. }
  447. rs = st.executeQuery(query);
  448. while (rs.next()) {
  449. return rs.getInt("LocatieID");
  450. }
  451. } catch (Exception e) {
  452. System.out.println("(DbConnect.java) @ getLocatieId - Error: " + e.getMessage());
  453. }
  454. return 0;
  455. }
  456. /**
  457. * INSERT Traject in database
  458. *
  459. * @return TrajectID
  460. */
  461. public int insertTraject(int verzendingID, int begin, int eind, String reistijd, int kilometers, int bps, int koerierId) {
  462. try {
  463. query = "INSERT INTO Traject "
  464. + "(TrajectID, VerzendingID, Begin, Eind, Reistijd, Kilometers, BPS, KoerierID) "
  465. + "VALUES (0, "
  466. + verzendingID + ","
  467. + "'" + begin + "',"
  468. + "'" + eind + "', "
  469. + "'" + reistijd + "', "
  470. + "'" + kilometers + "', "
  471. + "'" + bps + "', "
  472. + "'" + koerierId + "')";
  473. st.executeUpdate(query, Statement.RETURN_GENERATED_KEYS);
  474. rs = st.getGeneratedKeys();
  475. if (rs.next()) {
  476. return rs.getInt(1);
  477. } else {
  478. }
  479. rs.close();
  480. rs = null;
  481. } catch (Exception e) {
  482. System.out.println("(DbConnect.java) @ insertTraject - Error: " + e.getMessage());
  483. }
  484. return 0;
  485. }
  486. /**
  487. * @author Laurens
  488. * @autorv2 Jelle
  489. * @param emailadres
  490. * @param wachtwoord
  491. * @param succes
  492. * @return Object of Persoon or NULL
  493. * @throws SQLException
  494. */
  495. public Persoon getLoginData(String emailadres, String wachtwoord, boolean succes) throws SQLException {
  496. //Query voor uitlezen login gegevens!!!!----->
  497. PreparedStatement stmt = null;
  498. try {
  499. //Select query
  500. //rechten >0 houd in dat iedereen met rechten BOVEN BPS'er in mogen loggen.
  501. stmt = con.prepareStatement("SELECT * FROM Persoon WHERE Emailadres = ? AND Wachtwoord = ? AND rechten > 0");
  502. stmt.setString(1, emailadres);
  503. stmt.setString(2, wachtwoord);
  504. //Select kolom
  505. String password = "Wachtwoord";
  506. String email = "Emailadres";
  507. //Query uitvoeren
  508. rs = stmt.executeQuery();
  509. //Loop door de query data heen
  510. while (rs.next()) {
  511. String content = rs.getString(password);
  512. String content1 = rs.getString(email);
  513. if (content1.equals(emailadres) && content.equals(wachtwoord)) {
  514. //inloggen is gelukt, vul persoon object.
  515. Persoon p = new Persoon();
  516. p.setVoornaam(rs.getString("Voornaam"));
  517. p.setTussenvoegsel(rs.getString("Tussenvoegsel"));
  518. p.setAchternaam(rs.getString("Achternaam"));
  519. p.setEmailadres(rs.getString("Emailadres"));
  520. //zet geboortedatum om van String uit DB naar Date in Java
  521. DateFormat df = new SimpleDateFormat("dd-MM-yyyy");
  522. try {
  523. p.setGeboortedatum(df.parse(rs.getString("Geboortedatum")));
  524. System.out.println(p.getGeboortedatum());
  525. } catch (ParseException ex) {
  526. Logger.getLogger(DbConnect.class.getName()).log(Level.SEVERE, null, ex);
  527. }
  528. p.setMobielnummer(rs.getString("Mobielnummer"));
  529. p.setPersoonID(rs.getInt("PersoonID"));
  530. p.setRechten(rs.getInt("Rechten"));
  531. //object is gevuld geef het object terug.
  532. return p;
  533. } else {
  534. //geen match gevonden in het systeem, inloggen is niet succesvol.
  535. return null;
  536. }
  537. }
  538. } finally {
  539. //sluiten van databaseconnectie
  540. try {
  541. if (stmt != null) {
  542. stmt.close();
  543. }
  544. } catch (Exception e) {
  545. // log this error
  546. }
  547. try {
  548. if (con != null) {
  549. con.close();
  550. }
  551. } catch (Exception e) {
  552. // log this error
  553. }
  554. }
  555. return null;
  556. }
  557. public void insertData(String content, String aa) {
  558. //Query voor inserten!!!!----->
  559. try {
  560. //Insert query
  561. query = "INSERT INTO test VALUES('" + content + "')";
  562. //Query uitvoeren
  563. st.executeUpdate(query);
  564. } catch (Exception ea) {
  565. System.out.println("Query schrijf ERROR: " + ea);
  566. }
  567. }
  568. public void insertData() {
  569. //Query voor inserten!!!!----->
  570. try {
  571. //Insert query
  572. query = "INSERT INTO test VALUES('')";
  573. //Query uitvoeren
  574. st.executeUpdate(query);
  575. } catch (Exception ea) {
  576. System.out.println("Query schrijf ERROR: " + ea);
  577. }
  578. }
  579. public void insertData(String tabelnaam, String... value) {
  580. //Query voor inserten!!!!----->
  581. String waardes = "";
  582. if (tabelnaam.equals("Persoon")) {
  583. this.tabel = this.persoontabel;
  584. } else if (tabelnaam.equals("Locatie")) {
  585. this.tabel = this.locatie;
  586. }
  587. for (int i = 0; i < value.length; i++) {
  588. waardes += i <= value.length - 2
  589. ? value[i] + "','"
  590. : value[i] + "";
  591. }
  592. try {
  593. //Insert query
  594. query = "INSERT INTO " + tabelnaam + " ( " + tabel + ")"
  595. + " VALUES('" + waardes + "')";
  596. //Query uitvoeren
  597. st.executeUpdate(query);
  598. } catch (Exception e) {
  599. System.out.println(e);
  600. }
  601. }
  602. public void updateData(String field, String content) {
  603. //Query voor updaten!!!!----->
  604. try {
  605. //Select kolom
  606. String kolom = "YOLO";
  607. //Update query
  608. query = "UPDATE test SET " + kolom + "='" + content + "' WHERE " + kolom + "'" + field + "'";
  609. //Query uitvoeren
  610. st.executeUpdate(query);
  611. } catch (Exception ea) {
  612. System.out.println("Query update ERROR: " + ea);
  613. }
  614. }
  615. public Object[][] getPakket() {
  616. try {
  617. //LAURENS
  618. //pakt alle pakketen.
  619. query = "SELECT Count(*) AS aantalPakketten "
  620. + "FROM Pakket A "
  621. + "JOIN Verzending B ON A.PakketID = B.PakketID "
  622. + "JOIN Traject C ON B.VerzendingID = C.VerzendingID "
  623. + "JOIN Locatie D ON C.Eind = D.LocatieID "
  624. + "JOIN Locatie E ON C.Begin = E.LocatieID";
  625. rs = st.executeQuery(query);
  626. int aantal = 0;
  627. while (rs.next()) {
  628. aantal = rs.getInt("aantalPakketten");
  629. }
  630. Object[][] returnval = new Object[aantal][16];
  631. query = "SELECT A.PakketID, B.VerzendingID, C.TrajectID, A.Omschrijving, D.Plaatsnaam AS Beginplaats, D.Straatnaam AS BeginStraatnaam, D.Huisnummer AS BeginHuisnummer, D.Toevoeging AS BeginToevoeging, D.Postcode AS BeginPostcode, D.TZTPoint AS TZTpointBegin, E.Plaatsnaam AS Eindplaats, E.Straatnaam AS EindStraatnaam, E.Huisnummer AS EindHuisnummer, E.Toevoeging AS EindToevoeging, E.Postcode AS EindPostcode, E.TZTPoint AS TZTpointEind "
  632. + "FROM Pakket A"
  633. + " JOIN Verzending B ON A.PakketID = B.PakketID"
  634. + " JOIN Traject C ON B.VerzendingID = C.VerzendingID"
  635. + " JOIN Locatie D ON C.Eind = D.LocatieID"
  636. + " JOIN Locatie E ON C.Begin = E.LocatieID";
  637. rs = st.executeQuery(query);
  638. int i = 0;
  639. while (rs.next()) {
  640. returnval[i][0] = rs.getString("PakketID");
  641. returnval[i][1] = rs.getString("VerzendingID");
  642. returnval[i][2] = rs.getString("TrajectID");
  643. returnval[i][3] = rs.getString("Omschrijving");
  644. returnval[i][4] = rs.getString("Beginplaats");
  645. returnval[i][5] = rs.getString("BeginStraatnaam");
  646. returnval[i][6] = rs.getString("BeginHuisnummer");
  647. returnval[i][7] = rs.getString("BeginToevoeging");
  648. returnval[i][8] = rs.getString("BeginPostcode");
  649. returnval[i][9] = rs.getString("TZTpointBegin");
  650. returnval[i][10] = rs.getString("Eindplaats");
  651. returnval[i][11] = rs.getString("EindStraatnaam");
  652. returnval[i][12] = rs.getString("EindHuisnummer");
  653. returnval[i][13] = rs.getString("EindToevoeging");
  654. returnval[i][14] = rs.getString("EindPostcode");
  655. returnval[i][15] = rs.getString("TZTpointEind");
  656. i++;
  657. }
  658. return returnval;
  659. } catch (Exception e) {
  660. System.out.println("error : " + e.getClass());
  661. }
  662. return null;
  663. }
  664. public Object[] getLocatie() {
  665. try {
  666. //LAURENS
  667. String[] returnval = new String[26];
  668. //haal alles op.
  669. query = "SELECT Plaatsnaam "
  670. + "FROM Locatie "
  671. + "WHERE TZTPoint = '1'"
  672. + "ORDER BY Plaatsnaam ASC";
  673. rs = st.executeQuery(query);
  674. int i = 0;
  675. while (rs.next()) {
  676. returnval[i] = rs.getString("Plaatsnaam");
  677. i++;
  678. }
  679. return returnval;
  680. } catch (Exception e) {
  681. System.out.println("error : " + e.getClass());
  682. }
  683. return null;
  684. }
  685. public Boolean bpsTrajectUpdate(String[] data) {
  686. /*
  687. * Auteur: Dominique
  688. */
  689. try {
  690. query = "UPDATE Traject "
  691. + "SET Begin = \"" + data[0] + "\", "
  692. + "Eind = \"" + data[1] + "\""
  693. + "WHERE TrajectID = \"" + data[2] + "\"";
  694. System.out.println(query);
  695. st.executeUpdate(query);
  696. } catch (Exception e) {
  697. System.out.println("error : " + e.getMessage());
  698. }
  699. return null;
  700. }
  701. public Boolean verwijderPersoon(String query) {
  702. // Auteur Dominique
  703. try {
  704. st.executeUpdate(query);
  705. } catch (Exception e) {
  706. System.out.println("error : " + e.getMessage());
  707. }
  708. return null;
  709. }
  710. public Object[][] getSpecifiekPakket(String begin, String eind) {
  711. try {
  712. //LAURENS
  713. //get specifiekpakket.
  714. query = "SELECT COUNT(*) FROM Pakket A JOIN Verzending B ON A.PakketID = B.PakketID JOIN Traject C ON B.VerzendingID = C.VerzendingID JOIN Locatie D ON C.Eind = D.LocatieID JOIN Locatie E ON C.Begin = E.LocatieID ";
  715. if (begin.equals("'s Hertogenbosch")) {
  716. query += "WHERE D.Plaatsnaam = '\\" + begin + "' ";
  717. } else {
  718. query += "WHERE D.Plaatsnaam = '" + begin + "' ";
  719. }
  720. if (eind.equals("'s Hertogenbosch")) {
  721. query += "AND E.Plaatsnaam = '\\" + eind + "' ";
  722. } else {
  723. query += "AND E.Plaatsnaam = '" + eind + "'";
  724. }
  725. rs = st.executeQuery(query);
  726. int aantal = 0;
  727. while (rs.next()) {
  728. aantal = rs.getInt("COUNT(*)");
  729. }
  730. //haal alles op.
  731. if(aantal == 0){
  732. JOptionPane.showMessageDialog(null, "Er zijn geen records gevonden. Probeer het opnieuw.", "", JOptionPane.ERROR_MESSAGE);
  733. }
  734. Object[][] returnval = new Object[aantal][16];
  735. query = "SELECT A.PakketID, B.VerzendingID, C.TrajectID, A.Omschrijving, D.Plaatsnaam AS Beginplaats, D.Straatnaam AS BeginStraatnaam, D.Huisnummer AS BeginHuisnummer, D.Toevoeging AS BeginToevoeging, D.Postcode AS BeginPostcode, D.TZTPoint AS TZTpointBegin, E.Plaatsnaam AS Eindplaats, E.Straatnaam AS EindStraatnaam, E.Huisnummer AS EindHuisnummer, E.Toevoeging AS EindToevoeging, E.Postcode AS EindPostcode, E.TZTPoint AS TZTpointEind FROM Pakket A JOIN Verzending B ON A.PakketID = B.PakketID JOIN Traject C ON B.VerzendingID = C.VerzendingID JOIN Locatie D ON C.Eind = D.LocatieID JOIN Locatie E ON C.Begin = E.LocatieID ";
  736. if (begin.equals("'s Hertogenbosch")) {
  737. query += "WHERE D.Plaatsnaam = '\\" + begin + "' ";
  738. } else {
  739. query += "WHERE D.Plaatsnaam = '" + begin + "' ";
  740. }
  741. if (eind.equals("'s Hertogenbosch")) {
  742. query += "AND E.Plaatsnaam = '\\" + eind + "' ";
  743. } else {
  744. query += "AND E.Plaatsnaam = '" + eind + "'";
  745. }
  746. rs = st.executeQuery(query);
  747. int i = 0;
  748. while (rs.next()) {
  749. returnval[i][0] = rs.getString("PakketID");
  750. returnval[i][1] = rs.getString("VerzendingID");
  751. returnval[i][2] = rs.getString("TrajectID");
  752. returnval[i][3] = rs.getString("Omschrijving");
  753. returnval[i][4] = rs.getString("Beginplaats");
  754. returnval[i][5] = rs.getString("BeginStraatnaam");
  755. returnval[i][6] = rs.getString("BeginHuisnummer");
  756. returnval[i][7] = rs.getString("BeginToevoeging");
  757. returnval[i][8] = rs.getString("BeginPostcode");
  758. returnval[i][9] = rs.getString("TZTpointBegin");
  759. returnval[i][10] = rs.getString("Eindplaats");
  760. returnval[i][11] = rs.getString("EindStraatnaam");
  761. returnval[i][12] = rs.getString("EindHuisnummer");
  762. returnval[i][13] = rs.getString("EindToevoeging");
  763. returnval[i][14] = rs.getString("EindPostcode");
  764. returnval[i][15] = rs.getString("TZTpointEind");
  765. i++;
  766. }
  767. return returnval;
  768. } catch (Exception e) {
  769. System.out.println("error : " + e.getMessage() + e.toString());
  770. }
  771. return null;
  772. }
  773. public Object[][] getGebruikStatistiek() {
  774. try {
  775. //get aantal personen.
  776. rs = st.executeQuery("SELECT COUNT(*) "
  777. + "FROM Persoon P "
  778. + "JOIN Traject_BPS TBPS on P.PersoonID = TBPS.PersoonID "
  779. + "JOIN Traject T on TBPS.TrajectID = T.TrajectID "
  780. + "JOIN Locatie LocB on T.Begin = LocB.LocatieID "
  781. + "JOIN Locatie LocE on T.Eind = LocE.LocatieID");
  782. int aantal = 0;
  783. while (rs.next()) {
  784. aantal = rs.getInt("COUNT(*)");
  785. }
  786. //haal alles op.
  787. Object[][] returnval = new Object[aantal][7];
  788. query = "SELECT P.PersoonID, P.Voornaam, P.Tussenvoegsel, P.Achternaam, T.TrajectID, LocB.Plaatsnaam AS Beginplaats, LocE.Plaatsnaam AS Eindplaats "
  789. + "FROM Persoon P "
  790. + "JOIN Traject_BPS TBPS on P.PersoonID = TBPS.PersoonID "
  791. + "JOIN Traject T on TBPS.TrajectID = T.TrajectID "
  792. + "JOIN Locatie LocB on T.Begin = LocB.LocatieID JOIN "
  793. + "Locatie LocE on T.Eind = LocE.LocatieID";
  794. rs = st.executeQuery(query);
  795. int i = 0;
  796. while (rs.next()) {
  797. returnval[i][0] = rs.getString("PersoonID");
  798. returnval[i][1] = rs.getString("Voornaam");
  799. returnval[i][2] = rs.getString("Tussenvoegsel");
  800. returnval[i][3] = rs.getString("Achternaam");
  801. returnval[i][4] = rs.getString("TrajectID");
  802. returnval[i][5] = rs.getString("Beginplaats");
  803. returnval[i][6] = rs.getString("Eindplaats");
  804. i++;
  805. }
  806. return returnval;
  807. } catch (Exception e) {
  808. System.out.println("error : " + e.getClass());
  809. }
  810. return null;
  811. }
  812. public Object[][] getSpecifiekGebruikStatistiek(String begin, String eind) {
  813. try {
  814. query = "SELECT COUNT(*) "
  815. + "FROM Persoon P "
  816. + "JOIN Traject_BPS TBPS on P.PersoonID = TBPS.PersoonID "
  817. + "JOIN Traject T on TBPS.TrajectID = T.TrajectID "
  818. + "JOIN Locatie LocB on T.Begin = LocB.LocatieID "
  819. + "JOIN Locatie LocE on T.Eind = LocE.LocatieID ";
  820. if (begin.equals("'s Hertogenbosch")) {
  821. query += "WHERE LocB.Plaatsnaam = '\\" + begin + "' ";
  822. } else {
  823. query += "WHERE LocB.Plaatsnaam = '" + begin + "' ";
  824. }
  825. if (eind.equals("'s Hertogenbosch")) {
  826. query += "AND LocE.Plaatsnaam = '\\" + eind + "' ";
  827. } else {
  828. query += "AND LocE.Plaatsnaam = '" + eind + "'";
  829. }
  830. rs = st.executeQuery(query);
  831. int aantal = 0;
  832. while (rs.next()) {
  833. aantal = rs.getInt("COUNT(*)");
  834. }
  835. Object[][] returnval = new Object[aantal][7];
  836. query = "SELECT P.PersoonID, P.Voornaam, P.Tussenvoegsel, P.Achternaam, T.TrajectID, LocB.Plaatsnaam AS Beginplaats, LocE.Plaatsnaam AS Eindplaats "
  837. + "FROM Persoon P "
  838. + "JOIN Traject_BPS TBPS on P.PersoonID = TBPS.PersoonID "
  839. + "JOIN Traject T on TBPS.TrajectID = T.TrajectID "
  840. + "JOIN Locatie LocB on T.Begin = LocB.LocatieID JOIN "
  841. + "Locatie LocE on T.Eind = LocE.LocatieID ";
  842. if (begin.equals("'s Hertogenbosch")) {
  843. query += "WHERE LocB.Plaatsnaam = '\\" + begin + "' ";
  844. } else {
  845. query += "WHERE LocB.Plaatsnaam = '" + begin + "' ";
  846. }
  847. if (eind.equals("'s Hertogenbosch")) {
  848. query += "AND LocE.Plaatsnaam = '\\" + eind + "' ";
  849. } else {
  850. query += "AND LocE.Plaatsnaam = '" + eind + "' ";
  851. }
  852. int i = 0;
  853. rs = st.executeQuery(query);
  854. while (rs.next()) {
  855. returnval[i][0] = rs.getString("PersoonID");
  856. returnval[i][1] = rs.getString("Voornaam");
  857. returnval[i][2] = rs.getString("Tussenvoegsel");
  858. returnval[i][3] = rs.getString("Achternaam");
  859. returnval[i][4] = rs.getString("TrajectID");
  860. returnval[i][5] = rs.getString("Beginplaats");
  861. returnval[i][6] = rs.getString("Eindplaats");
  862. i++;
  863. }
  864. return returnval;
  865. } catch (Exception e) {
  866. System.out.println("error : " + e.getClass());
  867. }
  868. return null;
  869. }
  870. public Object[][] getZoekSpecifiekGebruikStatistiek(String zoekoptie) {
  871. try {
  872. query = "SELECT COUNT(*) "
  873. + "FROM Persoon P "
  874. + "JOIN Traject_BPS TBPS on P.PersoonID = TBPS.PersoonID "
  875. + "JOIN Traject T on TBPS.TrajectID = T.TrajectID "
  876. + "JOIN Locatie LocB on T.Begin = LocB.LocatieID "
  877. + "JOIN Locatie LocE on T.Eind = LocE.LocatieID "
  878. + "WHERE P.PersoonID = '" + zoekoptie + "' "
  879. + "OR P.Voornaam = '" + zoekoptie + "' "
  880. + "OR P.Tussenvoegsel = '" + zoekoptie + "' "
  881. + "OR P.Achternaam = '" + zoekoptie + "' "
  882. + "OR T.TrajectID = '" + zoekoptie + "' "
  883. + "OR LocB.Plaatsnaam = '" + zoekoptie + "' "
  884. + "OR LocE.Plaatsnaam = '" + zoekoptie + "' ";
  885. rs = st.executeQuery(query);
  886. int aantal = 0;
  887. while (rs.next()) {
  888. aantal = rs.getInt("COUNT(*)");
  889. }
  890. Object[][] returnval = new Object[aantal][7];
  891. query = "SELECT P.PersoonID, P.Voornaam, P.Tussenvoegsel, P.Achternaam, T.TrajectID, LocB.Plaatsnaam AS Beginplaats, LocE.Plaatsnaam AS Eindplaats "
  892. + "FROM Persoon P "
  893. + "JOIN Traject_BPS TBPS on P.PersoonID = TBPS.PersoonID "
  894. + "JOIN Traject T on TBPS.TrajectID = T.TrajectID "
  895. + "JOIN Locatie LocB on T.Begin = LocB.LocatieID JOIN "
  896. + "Locatie LocE on T.Eind = LocE.LocatieID "
  897. + "WHERE P.PersoonID = '" + zoekoptie + "' "
  898. + "OR P.Voornaam = '" + zoekoptie + "' "
  899. + "OR P.Tussenvoegsel = '" + zoekoptie + "' "
  900. + "OR P.Achternaam = '" + zoekoptie + "' "
  901. + "OR T.TrajectID = '" + zoekoptie + "' "
  902. + "OR LocB.Plaatsnaam = '" + zoekoptie + "' "
  903. + "OR LocE.Plaatsnaam = '" + zoekoptie + "' ";
  904. int i = 0;
  905. rs = st.executeQuery(query);
  906. while (rs.next()) {
  907. returnval[i][0] = rs.getString("PersoonID");
  908. returnval[i][1] = rs.getString("Voornaam");
  909. returnval[i][2] = rs.getString("Tussenvoegsel");
  910. returnval[i][3] = rs.getString("Achternaam");
  911. returnval[i][4] = rs.getString("TrajectID");
  912. returnval[i][5] = rs.getString("Beginplaats");
  913. returnval[i][6] = rs.getString("Eindplaats");
  914. i++;
  915. }
  916. return returnval;
  917. } catch (Exception e) {
  918. System.out.println("error : " + e.getClass());
  919. e.printStackTrace();
  920. }
  921. return null;
  922. }
  923. /**
  924. * Methode om aantal pakketten per jaar op te halen.
  925. * @author Jelle Smeets
  926. * @param year
  927. * @return int - aantal pakketten per jaar
  928. */
  929. public int getAantalPakketten(int year){
  930. //set aantal op 0;
  931. int aantal = 0;
  932. try{
  933. //haal aantal ritten op in jaar van year.
  934. String query = "select count(*) as 'aantal ritten' from Verzending where `Aankomsttijd` >= '1-1-"+year+" 00:00:00' && `Aankomsttijd` <= '31-12-"+year+" 23:59:59'";
  935. //voer query uit.
  936. rs = st.executeQuery(query);
  937. while(rs.next()){
  938. //zet aantal ritten in aantal
  939. aantal = rs.getInt("aantal ritten");
  940. }
  941. }catch(Exception e){
  942. //toon foutmelding in output.
  943. System.out.println(e.getMessage());
  944. }
  945. //return aantal
  946. return aantal;
  947. }
  948. /**
  949. * Methode om kostprijs per jaar op te halen.
  950. * @author Jelle Smeets
  951. * @param year
  952. * @return int - kostprijs per jaar
  953. */
  954. public double getKostprijs(int year){
  955. //set aantal op 0;
  956. double aantal = 0;
  957. try{
  958. //haal aantal ritten op in jaar van year.
  959. String query = "select sum(KostPrijs) as 'kostprijs' from Verzending where `Aankomsttijd` >= '1-1-"+year+" 00:00:00' && `Aankomsttijd` <= '31-12-"+year+" 23:59:59'";
  960. //voer query uit.
  961. rs = st.executeQuery(query);
  962. while(rs.next()){
  963. //zet aantal ritten in aantal
  964. aantal = rs.getDouble("kostprijs");
  965. }
  966. }catch(Exception e){
  967. //toon foutmelding in output.
  968. System.out.println(e.getMessage());
  969. }
  970. //return aantal
  971. return aantal;
  972. }
  973. /**
  974. * Bereken winst aan de hand van het jaar.
  975. * @param year
  976. * @return
  977. */
  978. public double getWinst(int year){
  979. //prijs per pakket staat vast.
  980. int prijspakket = 25;
  981. //bereken de omzet
  982. double omzet = (this.getAantalPakketten(year) * prijspakket);
  983. //bereken de winst
  984. double winst = omzet - getKostprijs(year);
  985. //return de winst.
  986. return winst;
  987. }
  988. /**
  989. * Haal aantal bps ritten op per jaar.
  990. * @author Jelle
  991. * @param year
  992. * @return int - aantal bps ritten
  993. */
  994. public int getAantalBps(int year){
  995. //set aantal op 0;
  996. int aantal = 0;
  997. try{
  998. //haal aantal ritten op in jaar van year.
  999. String query = "select count(*) as 'aantal bps' from Traject where BPS != 0 AND VerzendingID IN (select VerzendingID from Verzending where `Aankomsttijd` >= '1-1-"+year+" 00:00:00' AND `Aankomsttijd` <= '31-12-"+year+" 23:59:59')";
  1000. //voer query uit.
  1001. rs = st.executeQuery(query);
  1002. while(rs.next()){
  1003. //zet aantal ritten in aantal
  1004. aantal = rs.getInt("aantal bps");
  1005. }
  1006. }catch(Exception e){
  1007. //toon foutmelding in output.
  1008. System.out.println(e.getMessage());
  1009. }
  1010. //return aantal
  1011. return aantal;
  1012. }
  1013. /**
  1014. * Haal aantal koerier ritten op per jaar.
  1015. * @author Jelle
  1016. * @param year
  1017. * @return int - aantal koerier ritten
  1018. */
  1019. public int getAantalKoerier(int year){
  1020. //set aantal op 0;
  1021. int aantal = 0;
  1022. try{
  1023. //haal aantal ritten op in jaar van year.
  1024. String query = "select count(*) as 'aantal koerier' from Traject where KoerierID != 0 AND VerzendingID IN (select VerzendingID from Verzending where `Aankomsttijd` >= '1-1-"+year+" 00:00:00' AND `Aankomsttijd` <= '31-12-"+year+" 23:59:59')";
  1025. //voer query uit.
  1026. rs = st.executeQuery(query);
  1027. while(rs.next()){
  1028. //zet aantal ritten in aantal
  1029. aantal = rs.getInt("aantal koerier");
  1030. }
  1031. }catch(Exception e){
  1032. //toon foutmelding in output.
  1033. System.out.println(e.getMessage());
  1034. }
  1035. //return aantal
  1036. return aantal;
  1037. }
  1038. /**
  1039. * Haal financiele gegevens op in een array voor een JTable.
  1040. * @param year
  1041. * @return Multidimensionale array voor JTable.
  1042. */
  1043. public Object[][] getFinance(int year) {
  1044. //instancieer returnval
  1045. Object[][] returnval = new Object[1][5];
  1046. if (year == 0) {
  1047. //als jaar 0 is toon dan alle waarden op 0 voor eeste invul van jtable. // lelijke fix
  1048. returnval[0][0] = 0;
  1049. returnval[0][1] = 0;
  1050. returnval[0][2] = 0;
  1051. returnval[0][3] = 0;
  1052. returnval[0][4] = 0;
  1053. } else {
  1054. //haal variabelen op.
  1055. int aantalpakketten = this.getAantalPakketten(year);
  1056. double kostprijs = this.getKostprijs(year);
  1057. double winst = this.getWinst(year);
  1058. int bps = this.getAantalBps(year);
  1059. int koerier = this.getAantalKoerier(year);
  1060. //maak query en vul returnval;
  1061. //aantal pakketten
  1062. returnval[0][0] = aantalpakketten;
  1063. //aantal keer bps
  1064. returnval[0][1] = bps;
  1065. //aantal keer koerier
  1066. returnval[0][2] = koerier;
  1067. //kostprijs
  1068. returnval[0][3] = kostprijs;
  1069. //winst
  1070. returnval[0][4] = winst;
  1071. }
  1072. //return de array
  1073. return returnval;
  1074. }
  1075. public Object[][] getPakketWijzigen(int pakketID) {
  1076. try {
  1077. //get aantal personen.
  1078. rs = st.executeQuery("SELECT COUNT(*)"
  1079. + "FROM Pakket A "
  1080. + "JOIN Verzending B "
  1081. + "ON A.PakketID = B.PakketID "
  1082. + "JOIN Traject C "
  1083. + "ON B.VerzendingID = C.VerzendingID "
  1084. + "JOIN Locatie D "
  1085. + "ON C.Begin = D.LocatieID "
  1086. + "JOIN Locatie E "
  1087. + "On C.Eind = E.LocatieID "
  1088. + "WHERE A.PakketID = " + pakketID + ";");
  1089. int aantal = 0;
  1090. while (rs.next()) {
  1091. aantal = rs.getInt("Count(*)");
  1092. }
  1093. Object[][] returnval = new Object[aantal][6];
  1094. //Select query
  1095. query = "SELECT C.TrajectID AS tr, C.BPS AS bp, C.KoerierID AS k, D.Plaatsnaam AS begin, E.Plaatsnaam AS eind, C.Status AS s "
  1096. + "FROM Pakket A "
  1097. + "JOIN Verzending B "
  1098. + "ON A.PakketID = B.PakketID "
  1099. + "JOIN Traject C "
  1100. + "ON B.VerzendingID = C.VerzendingID "
  1101. + "JOIN Locatie D "
  1102. + "ON C.Begin = D.LocatieID "
  1103. + "JOIN Locatie E "
  1104. + "On C.Eind = E.LocatieID "
  1105. + "WHERE A.PakketID = " + pakketID + ";";
  1106. //Query uitvoeren
  1107. rs = st.executeQuery(query);
  1108. //Loop door de query data heen
  1109. int i = 0;
  1110. while (rs.next()) {
  1111. returnval[i][0] = rs.getString("tr");
  1112. if (Integer.parseInt(rs.getString("bp")) == 0) {
  1113. returnval[i][1] = "Koerier";
  1114. } else if ((Integer.parseInt(rs.getString("bp")) == 1)) {
  1115. returnval[i][1] = "BPS'er";
  1116. } else {
  1117. returnval[i][1] = "onbekend";
  1118. }
  1119. returnval[i][2] = rs.getString("k");
  1120. returnval[i][3] = rs.getString("begin");
  1121. returnval[i][4] = rs.getString("eind");
  1122. if (Integer.parseInt(rs.getString("s")) == 0) {
  1123. returnval[i][5] = "Aangemeld";
  1124. } else if ((Integer.parseInt(rs.getString("s")) == 1)) {
  1125. returnval[i][5] = "Onderweg";
  1126. } else if ((Integer.parseInt(rs.getString("s")) == 2)) {

Large files files are truncated, but you can click here to view the full file