Arbeit an NewLending... Fehler in getFreeArticleList gefunden!
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
package de.katho.kBorrow.controller;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
@@ -27,24 +29,38 @@ public class NewLendingController {
|
||||
*
|
||||
* @return StatusCode
|
||||
* 0: Erfolgreich gespeichert
|
||||
* 1: Notwendige Daten sind leer (Art-ID, Start-Date, Est. End-Date)
|
||||
* 2: Das R<>ckgabedatum ist fr<66>her oder gleich dem Ausleihdatum
|
||||
* 3: Die gegebene Kombination aus Lender-Name, -Surname und -Studentnumber
|
||||
* 1: SQL-Fehler
|
||||
* 2: Notwendige Daten sind leer (Art-ID, Start-Date, Est. End-Date)
|
||||
* 3: Das R<>ckgabedatum ist fr<66>her oder gleich dem Ausleihdatum
|
||||
* 4: Die gegebene Kombination aus Lender-Name, -Surname und -Studentnumber
|
||||
* existiert mehrmals in der Datenbank. Das darf nicht sein und wirft daher einen Fehler!
|
||||
*/
|
||||
public int newLending(int pArtId, String pLName, String pLSurname, String pLSN, String pStartDate, Date pEstEndDate, String pUsername){
|
||||
if (pArtId == -1 || pStartDate.isEmpty() || pEstEndDate == null || pLName.isEmpty() || pLSurname.isEmpty() || pUsername.isEmpty()) return 1;
|
||||
if (pEstEndDate.before(new Date())) return 2;
|
||||
if (pArtId == -1 || pStartDate.isEmpty() || pEstEndDate == null || pLName.isEmpty() || pLSurname.isEmpty() || pUsername.isEmpty()) return 2;
|
||||
if (pEstEndDate.before(new Date())) return 3;
|
||||
|
||||
ArrayList<KLender> lenders = lenderModel.getLenders(pLName, pLSurname, pLSN);
|
||||
if(lenders.size() == 0) {
|
||||
// Lender existiert noch nicht
|
||||
int result = dbCon.createNewLender(pLName, pLSurname, pLSN);
|
||||
|
||||
if(result == 0){
|
||||
lenderModel.updateModel();
|
||||
return newLending(pArtId, pLName, pLSurname, pLSN, pStartDate, pEstEndDate, pUsername);
|
||||
}
|
||||
else return result;
|
||||
}
|
||||
else if(lenders.size() == 1){
|
||||
// Lender existiert bereits
|
||||
KLender lender = lenders.get(0);
|
||||
int uId = userListModel.getIdByFullname(pUsername);
|
||||
DateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
|
||||
int result = dbCon.createNewLending(pArtId, uId, lender.getId(), pStartDate, dateFormat.format(pEstEndDate));
|
||||
|
||||
if(result == 0){
|
||||
freeArticleModel.updateModel();
|
||||
return result;
|
||||
}
|
||||
else return result;
|
||||
}
|
||||
else return 3;
|
||||
|
||||
return 0;
|
||||
return 4;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,5 +18,7 @@ public interface DbConnector {
|
||||
public int editArticle(int pId, String pName, String pDesc);
|
||||
public ArrayList<KArticle> getFreeArticleList();
|
||||
public ArrayList<KLender> getLenderList();
|
||||
public int createNewLending(int pArtId, int pUId, int pLId, String pStartDate, String pEstEndDate);
|
||||
public int createNewLender(String pLName, String pLSurname, String pLSN);
|
||||
|
||||
}
|
||||
|
||||
@@ -72,5 +72,18 @@ public class SqlConnector implements DbConnector{
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int createNewLending(int pArtId, int pUId, int pLId,
|
||||
String pStartDate, String pEstEndDate) {
|
||||
// TODO Auto-generated method stub
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int createNewLender(String pLName, String pLSurname, String pLSN) {
|
||||
// TODO Auto-generated method stub
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -227,6 +227,7 @@ public class SqliteConnector implements DbConnector {
|
||||
ArrayList<KArticle> artArr = new ArrayList<KArticle>();
|
||||
|
||||
try {
|
||||
//TODO Diese Funktion gibt auch ausgeliehene Artikel zur<75>ck, wenn es eine fr<66>here, abgeschlossene Ausleihe gab!
|
||||
Statement st = this.connection.createStatement();
|
||||
String query = "SELECT article.id, name, description FROM article LEFT OUTER JOIN lending ON article.id = lending.article_id WHERE lending.start_date IS NULL OR (lending.start_date IS NOT NULL AND lending.end_date IS NOT NULL);";
|
||||
ResultSet rs = st.executeQuery(query);
|
||||
@@ -363,5 +364,43 @@ public class SqliteConnector implements DbConnector {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return Status-Code:
|
||||
* 0: Erfolg
|
||||
* 1: SQL-Fehler
|
||||
*/
|
||||
public int createNewLending(int pArtId, int pUId, int pLId, String pStartDate, String pEstEndDate) {
|
||||
try{
|
||||
Statement st = connection.createStatement();
|
||||
String query = "INSERT INTO lending (article_id, user_id, lender_id, start_date, expected_end_date ) "
|
||||
+ "VALUES ("+pArtId+", "+pUId+", "+pLId+", '"+pStartDate+"', '"+pEstEndDate+"')";
|
||||
|
||||
st.executeUpdate(query);
|
||||
|
||||
return 0;
|
||||
}
|
||||
catch(SQLException e){
|
||||
e.printStackTrace();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
public int createNewLender(String pLName, String pLSurname, String pLSN) {
|
||||
try{
|
||||
Statement st = connection.createStatement();
|
||||
String query = "INSERT into lender (name, surname, student_number) "
|
||||
+ "VALUES ('"+pLName+"', '"+pLSurname+"', '"+pLSN+"')";
|
||||
|
||||
st.executeUpdate(query);
|
||||
|
||||
return 0;
|
||||
}
|
||||
catch(SQLException e){
|
||||
e.printStackTrace();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -7,8 +7,6 @@ import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.FocusListener;
|
||||
import java.io.IOException;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
@@ -62,6 +60,7 @@ public class NewLendingPanel extends JPanel implements ActionListener, FocusList
|
||||
private NewLendingController newLendingController;
|
||||
private JComboBox<String> cbUserName;
|
||||
private JXDatePicker dpEstEndDate;
|
||||
private JLabel lblStatus;
|
||||
|
||||
/**
|
||||
* Create the panel.
|
||||
@@ -154,7 +153,10 @@ public class NewLendingPanel extends JPanel implements ActionListener, FocusList
|
||||
JLabel lblLenderName = new JLabel("Name:");
|
||||
JLabel lblLenderSurname = new JLabel("Nachname:");
|
||||
JLabel lblLenderStudentnumber = new JLabel("Matrikelnummer:");
|
||||
lblStatus = new JLabel("");
|
||||
|
||||
lblLenderName.setBounds(10, 100, 90, 20);
|
||||
lblStatus.setBounds(210, 100, 400, 20);
|
||||
lblLenderSurname.setBounds(10, 130, 90, 20);
|
||||
lblLenderStudentnumber.setBounds(10, 160, 90, 20);
|
||||
|
||||
@@ -196,6 +198,7 @@ public class NewLendingPanel extends JPanel implements ActionListener, FocusList
|
||||
panelNewLending.add(lblLenderStudentnumber);
|
||||
panelNewLending.add(lblLenderSurname);
|
||||
panelNewLending.add(lblLenderName);
|
||||
panelNewLending.add(lblStatus);
|
||||
panelNewLending.add(separator);
|
||||
panelNewLending.add(btnSave);
|
||||
panelNewLending.add(btnCancel);
|
||||
@@ -216,12 +219,7 @@ public class NewLendingPanel extends JPanel implements ActionListener, FocusList
|
||||
|
||||
public void actionPerformed(ActionEvent pEvent) {
|
||||
if(pEvent.getSource() == btnCancel){
|
||||
lblStartDate.setText("");
|
||||
lblArticleName.setText("");
|
||||
articleId = -1;
|
||||
tfName.setText("");
|
||||
tfSurname.setText("");
|
||||
tfStudentNumber.setText("");
|
||||
resetForm();
|
||||
}
|
||||
|
||||
if(pEvent.getSource() == btnSave){
|
||||
@@ -243,7 +241,28 @@ public class NewLendingPanel extends JPanel implements ActionListener, FocusList
|
||||
System.out.println("Est. End-Date: "+estEndDate);
|
||||
|
||||
int r = newLendingController.newLending(articleId, pLName, pLSurname, pLSN, startDate, estEndDate, pUsername);
|
||||
|
||||
System.out.println("Status: "+r);
|
||||
|
||||
switch (r) {
|
||||
case 0:
|
||||
lblStatus.setText("Art-ID "+articleId+" erfolgreich ausgeliehen.");
|
||||
resetForm();
|
||||
break;
|
||||
case 1:
|
||||
lblStatus.setText("Fehler bei Ausleihe, SQL-Fehler.");
|
||||
break;
|
||||
case 2:
|
||||
lblStatus.setText("Notwendige Daten sind leer (Art-ID, Start-Date, Est. End-Date)");
|
||||
break;
|
||||
case 3:
|
||||
lblStatus.setText("Das R<>ckgabedatum ist fr<66>her oder gleich dem Ausleihdatum");
|
||||
break;
|
||||
case 4:
|
||||
lblStatus.setText("Die gegebene Kombination aus Lender-Name, -Surname und -Studentnumber" +
|
||||
"existiert mehrmals in der Datenbank. Das darf nicht sein und wirft daher einen Fehler!");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -263,4 +282,13 @@ public class NewLendingPanel extends JPanel implements ActionListener, FocusList
|
||||
tfStudentNumber.setText(String.valueOf(result.get(0).getStudentnumber()));
|
||||
}
|
||||
}
|
||||
|
||||
private void resetForm(){
|
||||
lblStartDate.setText("");
|
||||
lblArticleName.setText("");
|
||||
articleId = -1;
|
||||
tfName.setText("");
|
||||
tfSurname.setText("");
|
||||
tfStudentNumber.setText("");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package de.katho.kBorrow.models;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import de.katho.kBorrow.data.KLender;
|
||||
import de.katho.kBorrow.db.DbConnector;
|
||||
@@ -105,16 +104,4 @@ public class LenderModel {
|
||||
|
||||
return elems;
|
||||
}
|
||||
|
||||
public boolean exists(String pName, String pSurname, String pSN){
|
||||
ArrayList<KLender> elems = getLenders(pName, pSurname, pSN);
|
||||
|
||||
return elems.size() > 0 ? true : false;
|
||||
}
|
||||
|
||||
public boolean isUnique(String pName, String pSurname, String pSN){
|
||||
ArrayList<KLender> elems = getLenders(pName, pSurname, pSN);
|
||||
|
||||
return elems.size() == 1 ? true : false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,6 +65,13 @@ public class UserListModel extends AbstractListModel<String> implements ComboBox
|
||||
return false;
|
||||
}
|
||||
|
||||
public int getIdByFullname(String pName){
|
||||
for (KUser elem : data){
|
||||
if(pName.equals(elem.getName()+" "+elem.getSurname())) return elem.getId();
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user