106 |
|
|
107 |
SQL.Format("UPDATE Udlån SET Afleveringsdato = Getdate() WHERE Stregkode= '%s' AND Afleveringsdato IS NULL ", barcode); |
SQL.Format("UPDATE Udlån SET Afleveringsdato = Getdate() WHERE Stregkode= '%s' AND Afleveringsdato IS NULL ", barcode); |
108 |
db.ExecuteSQL(SQL); |
db.ExecuteSQL(SQL); |
109 |
|
|
110 |
|
checkReservations(barcode); |
111 |
return true; |
return true; |
112 |
} |
} |
113 |
|
|
121 |
return true; |
return true; |
122 |
} |
} |
123 |
|
|
124 |
bool DatabaseLayer::EquipmentReservation(Person CheckPersID, Equipment CheckEquip, int Numdays) |
bool DatabaseLayer::EquipmentReservation(CString barcode, Person CheckPerson) |
125 |
{ |
{ |
126 |
CString SQL; |
CString SQL; |
127 |
SQL.Format("UPDATE Udstyr SET Status = '2' WHERE Stregkode = '%s' ", CheckEquip.barcode); |
SQL.Format("INSERT INTO Resevation (PersonID, Stregkode, Startdato) VALUES( '%s','%s', GetDate())", CheckPerson.id, barcode); |
|
db.ExecuteSQL(SQL); |
|
|
SQL.Format("INSERT INTO Resevation (PersonID, Stregkode, Startdato, Antaldage) VALUES( '%s','%s', GetDate(),'%d')", CheckPersID.id, CheckEquip.barcode, Numdays); |
|
128 |
db.ExecuteSQL(SQL); |
db.ExecuteSQL(SQL); |
129 |
|
checkReservations(barcode); |
130 |
return true; |
return true; |
131 |
} |
} |
132 |
|
|
307 |
rs.Close(); |
rs.Close(); |
308 |
|
|
309 |
// fill Equipment::reservations |
// fill Equipment::reservations |
310 |
SQL = "SELECT Resevation.ResevationID, Resevation.StartDato, Resevation.Antaldage, Person.Initialer\ |
SQL = "SELECT Resevation.ResevationID, Resevation.StartDato, Person.Initialer\ |
311 |
FROM Resevation\ |
FROM Resevation\ |
312 |
INNER JOIN Person ON Resevation.PersonID = Person.PersonID "; |
INNER JOIN Person ON Resevation.PersonID = Person.PersonID "; |
313 |
SQL += "WHERE Resevation.Stregkode = " + buffer[i].barcode + " ORDER BY STARTDATO ASC"; |
SQL += "WHERE Resevation.Stregkode = " + buffer[i].barcode + " ORDER BY STARTDATO ASC"; |
319 |
Reservation res; |
Reservation res; |
320 |
rs.GetFieldValue((short)0, res.reservationID); |
rs.GetFieldValue((short)0, res.reservationID); |
321 |
rs.GetFieldValue(1, res.startdate); |
rs.GetFieldValue(1, res.startdate); |
322 |
rs.GetFieldValue(2, res.numdays); |
rs.GetFieldValue(2, res.inits); |
|
rs.GetFieldValue(3, res.inits); |
|
323 |
|
|
324 |
buffer[i].reservations.push_back(res); |
buffer[i].reservations.push_back(res); |
325 |
rs.MoveNext(); |
rs.MoveNext(); |
351 |
} |
} |
352 |
} |
} |
353 |
} |
} |
354 |
|
|
355 |
|
void DatabaseLayer::checkReservations(CString barcode) |
356 |
|
{ |
357 |
|
CString scount,status; |
358 |
|
CString SQL = "SELECT count(*) FROM Resevation WHERE Resevation.Stregkode = '" + barcode + "'"; |
359 |
|
CRecordset rs(&db); |
360 |
|
rs.Open(AFX_DB_USE_DEFAULT_TYPE,SQL); |
361 |
|
rs.MoveFirst(); |
362 |
|
rs.GetFieldValue((short)0,scount); |
363 |
|
int reservationCount = atoi(scount); |
364 |
|
rs.Close(); |
365 |
|
|
366 |
|
SQL = "SELECT status FROM Udstyr WHERE Udstyr.Stregkode = '" + barcode + "'"; |
367 |
|
rs.Open(AFX_DB_USE_DEFAULT_TYPE,SQL); |
368 |
|
if (rs.GetRecordCount() >0) { |
369 |
|
rs.MoveFirst(); |
370 |
|
rs.GetFieldValue((short)0,status); |
371 |
|
} |
372 |
|
rs.Close(); |
373 |
|
|
374 |
|
|
375 |
|
if (reservationCount > 0 && status == 3) {//equipment is available and has at lease one reservation |
376 |
|
SQL = "UPDATE Udstyr SET Status = 2 WHERE Stregkode = '" + barcode + "'"; |
377 |
|
db.ExecuteSQL(SQL); |
378 |
|
} |
379 |
|
} |
380 |
|
|
381 |
|
bool DatabaseLayer::DeleteReservation(CString barcode, CString resid) |
382 |
|
{ |
383 |
|
CString SQL = "DELETE FROM Resevation WHERE resevationid = " + resid; |
384 |
|
db.ExecuteSQL(SQL); |
385 |
|
checkReservations(barcode); |
386 |
|
return true; |
387 |
|
} |
388 |
|
|