Guest User

Untitled

a guest
Jul 22nd, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.33 KB | None | 0 0
  1. package db;
  2.  
  3. import java.sql.*;
  4.  
  5.  
  6. public class ProduktTransaktionen {
  7.  
  8. private Connection conn;
  9.  
  10. public ProduktTransaktionen() {
  11. try {
  12. DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
  13. this.conn = DriverManager.getConnection("jdbc:oracle:thin:@flores.dbs.ifi.lmu.de:1521:dbprakt","spanner","");
  14. //this.zulieferungEinbuchen(59446);
  15. //this.bestandUmbuchen(1, 2, 3063, 8);
  16. } catch (SQLException e) {
  17. e.printStackTrace();
  18. }
  19. }
  20.  
  21. public void zulieferungEinbuchen(int nr) {
  22. try {
  23. int lager;
  24. Statement stmt = this.conn.createStatement();
  25.  
  26. ResultSet rsetlag = stmt.executeQuery("select Lager from Zulieferung where zlid = " + nr); // Herausfinden des Lagers
  27. rsetlag.next();
  28. try {
  29. lager = rsetlag.getInt(1);
  30. } catch (Exception e) { // Exception zur falschen Zlid-Eingabe
  31. System.out.println("Die Zulieferungsnummer " + nr + " existiert nicht ! Bitte neue Eingabe. ");
  32. return;
  33. }
  34. rsetlag.close();
  35.  
  36. System.out.println("Vor einbuchen");
  37. this.einbuchen(nr, lager);
  38. System.out.println("Nach einbuchen");
  39. stmt.executeQuery("update Zulieferung set status = 'ERLEDIGT' where zlid = " + nr);
  40. stmt.executeQuery("update Zulieferung set erledigt_termin = sysdate where zlid = " + nr);
  41.  
  42. stmt.close();
  43. this.conn.close();
  44. } catch (SQLException evt) {
  45. evt.printStackTrace();
  46. }
  47. }
  48.  
  49. public void einbuchen(int zlNr, int lagerNr) {
  50. int lagerEintrag = 0;
  51. try {
  52. Statement stmt = this.conn.createStatement();
  53.  
  54. // Produkt und dessen Anzahl holen
  55. ResultSet rsetprod = stmt.executeQuery("select produkt, anzahl from Zulieferungsposition where zlid = " + zlNr);
  56.  
  57. while (rsetprod.next()) {
  58. int prod = rsetprod.getInt("produkt");
  59. int anz = rsetprod.getInt("anzahl");
  60.  
  61. // ist dieses Produkt schon in dem angegebenen Lager gespeichert?
  62. ResultSet rsetLagereintrag = stmt.executeQuery("select count(*) from lagert where Lager = "+ lagerNr + " and produkt = " + prod);
  63. rsetLagereintrag.next();
  64. lagerEintrag = rsetLagereintrag.getInt(1);
  65. rsetLagereintrag.close();
  66.  
  67. // falls nicht, neuer Eintrag
  68. if (lagerEintrag == 0) {
  69. stmt.executeQuery("insert into lagert (anzahl, lager, produkt) values(" + anz + "," + lagerNr + "," + prod + ")");
  70. }
  71. // sonst Update
  72. else {
  73. stmt.executeQuery("update lagert set anzahl = anzahl + " + anz + " where Lager = " + lagerNr + " and produkt = " + prod);
  74. }
  75. }
  76. rsetprod.close();
  77. stmt.close();
  78. } catch (SQLException e) {
  79. e.printStackTrace();
  80. }
  81. }
  82.  
  83. public void bestandUmbuchen(int ul, int zl, int prod, int menge) {
  84. try {
  85. int bestand_ul;
  86. int zl_eintrag;
  87.  
  88. Statement stmt = this.conn.createStatement();
  89.  
  90. //Checken ob Ursprungs und Ziellager existieren
  91. try {
  92. ResultSet rsettestlag = stmt.executeQuery("select Lagid from Lager where lagid = " + ul);
  93. rsettestlag.next();
  94. int lager = rsettestlag.getInt(1);
  95. rsettestlag.close();
  96. } catch (Exception e) {
  97. System.out.println("Dieses Ursprungslager mit er ID " + ul + " existiert nicht! Bitte neue Eingabe. ");
  98. return;
  99. }
  100. try {
  101. ResultSet rsettestlag = stmt.executeQuery("select Lagid from Lager where lagid = " + zl);
  102. rsettestlag.next();
  103. int lager = rsettestlag.getInt(1);
  104. rsettestlag.close();
  105. } catch (Exception e) {
  106. System.out.println("Dieses Ziellager mit er ID " + zl + " existiert nicht! Bitte neue Eingabe. ");
  107. return;
  108. }
  109.  
  110. //checken ob die PID g�ltig ist
  111. try {
  112. ResultSet rsettestlag = stmt.executeQuery("select Produkt from lagert where Produkt = " + prod);
  113. rsettestlag.next();
  114. int lager = rsettestlag.getInt(1);
  115. rsettestlag.close();
  116. } catch (Exception e) {
  117. System.out.println("Dieses Produkt mit er PID " + prod + " existiert nicht! Bitte neue Eingabe. ");
  118. return;
  119. }
  120.  
  121. // checken ob die Mengenangabe positiv ist
  122. if (menge < 0) {
  123. System.out.println("ung�ltige Mengenangabe");
  124. return;
  125. }
  126.  
  127. // jetzt kommt die Funktion!
  128. // Herausfinden des Bestands im Ursprunglager
  129. ResultSet rsetbestand_ul = stmt.executeQuery("select anzahl from lagert where Produkt = " + prod + " and Lager = " + ul);
  130. rsetbestand_ul.next();
  131. bestand_ul = rsetbestand_ul.getInt(1);
  132. rsetbestand_ul.close();
  133.  
  134. System.out.println("Bestand des Ursprungslagers ist " + bestand_ul);
  135.  
  136. //testen ob �berhaupt genug im Ursprungslager sind
  137. if (bestand_ul < menge) {
  138. System.out.println("Bestand reicht nicht aus! Nur " + bestand_ul + " St�ck vorr�tig!");
  139. }
  140.  
  141. //umbuchen von ul nach zl
  142. else {
  143. ResultSet rsetzl_eintrag = stmt.executeQuery("select count(*) from lagert where Lager = " + zl + " and produkt = " + prod);
  144. rsetzl_eintrag.next();
  145. zl_eintrag = rsetzl_eintrag.getInt(1);
  146. rsetzl_eintrag.close();
  147.  
  148. System.out.println("Eintraege im Ziellager : " + zl_eintrag);
  149.  
  150. //falls im Ziellager noch kein Eintrag zu deisem Produkt existiert muss ein neuer Eintrag gemacht werden
  151. if (zl_eintrag == 0) {
  152. stmt.executeQuery("insert into lagert (anzahl, lager, produkt) values(" + menge + "," + zl + "," + prod + ")");
  153. System.out.println("neuer Eintrag im Ziellager: " + zl_eintrag);
  154. }
  155. //sonst wird die umgebuchte Menge addiert
  156. else {
  157. stmt.executeQuery("update lagert set anzahl = anzahl + " + menge + "where Lager = " + zl + " and produkt = " + prod);
  158. System.out.println("Anzahl im Ziellager um " + menge + " erh�ht" );
  159. }
  160.  
  161. stmt.executeQuery("update lagert set anzahl = anzahl - " + menge + " where Lager = " + ul + " and produkt = " + prod);
  162. System.out.println("Anzahl im Ursprungslager um " + menge + " verkleinert");
  163.  
  164. //Falls alle Produkte aus dem Ursprungslager herausgeholt werden muss dieser Eintrag im Ursprungslager gel�scht werden
  165. if (bestand_ul == menge) {
  166. stmt.executeQuery("delete from lagert where Lager =" + ul + "and produkt =" + prod);
  167. System.out.println("Eintrag im Ursprungslager gel�scht!" );
  168. }
  169. }
  170. stmt.close();
  171. this.conn.close();
  172. } catch (SQLException evt) {
  173. evt.printStackTrace();
  174. }
  175. }
  176.  
  177. public static void main(String[] args) {
  178. new ProduktTransaktionen();
  179. }
  180. }
Add Comment
Please, Sign In to add comment