1 |
|
/* |
2 |
|
* Primary developers: Hedin & Kevin |
3 |
|
*/ |
4 |
|
|
5 |
#include "StdAfx.h" |
#include "StdAfx.h" |
6 |
#include ".\databaselayer.h" |
#include ".\databaselayer.h" |
108 |
|
|
109 |
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); |
110 |
db.ExecuteSQL(SQL); |
db.ExecuteSQL(SQL); |
111 |
|
|
112 |
|
checkReservations(barcode); |
113 |
return true; |
return true; |
114 |
} |
} |
115 |
|
|
123 |
return true; |
return true; |
124 |
} |
} |
125 |
|
|
126 |
bool DatabaseLayer::EquipmentReservation(Person CheckPersID, Equipment CheckEquip, int Numdays) |
bool DatabaseLayer::EquipmentReservation(CString barcode, Person CheckPerson) |
127 |
{ |
{ |
128 |
CString SQL; |
CString SQL; |
129 |
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); |
|
130 |
db.ExecuteSQL(SQL); |
db.ExecuteSQL(SQL); |
131 |
|
checkReservations(barcode); |
132 |
return true; |
return true; |
133 |
} |
} |
134 |
|
|
309 |
rs.Close(); |
rs.Close(); |
310 |
|
|
311 |
// fill Equipment::reservations |
// fill Equipment::reservations |
312 |
SQL = "SELECT Resevation.ResevationID, Resevation.StartDato, Resevation.Antaldage, Person.Initialer\ |
SQL = "SELECT Resevation.ResevationID, Resevation.StartDato, Person.Initialer\ |
313 |
FROM Resevation\ |
FROM Resevation\ |
314 |
INNER JOIN Person ON Resevation.PersonID = Person.PersonID "; |
INNER JOIN Person ON Resevation.PersonID = Person.PersonID "; |
315 |
SQL += "WHERE Resevation.Stregkode = " + buffer[i].barcode + " ORDER BY STARTDATO ASC"; |
SQL += "WHERE Resevation.Stregkode = " + buffer[i].barcode + " ORDER BY STARTDATO ASC"; |
321 |
Reservation res; |
Reservation res; |
322 |
rs.GetFieldValue((short)0, res.reservationID); |
rs.GetFieldValue((short)0, res.reservationID); |
323 |
rs.GetFieldValue(1, res.startdate); |
rs.GetFieldValue(1, res.startdate); |
324 |
rs.GetFieldValue(2, res.numdays); |
rs.GetFieldValue(2, res.inits); |
|
rs.GetFieldValue(3, res.inits); |
|
325 |
|
|
326 |
buffer[i].reservations.push_back(res); |
buffer[i].reservations.push_back(res); |
327 |
rs.MoveNext(); |
rs.MoveNext(); |
353 |
} |
} |
354 |
} |
} |
355 |
} |
} |
356 |
|
//Developed by Torben H. Nielsen |
357 |
|
void DatabaseLayer::checkReservations(CString barcode) |
358 |
|
{ |
359 |
|
CString scount,status; |
360 |
|
CString SQL = "SELECT count(*) FROM Resevation WHERE Resevation.Stregkode = '" + barcode + "'"; |
361 |
|
CRecordset rs(&db); |
362 |
|
rs.Open(AFX_DB_USE_DEFAULT_TYPE,SQL); |
363 |
|
rs.MoveFirst(); |
364 |
|
rs.GetFieldValue((short)0,scount); |
365 |
|
int reservationCount = atoi(scount); |
366 |
|
rs.Close(); |
367 |
|
|
368 |
|
SQL = "SELECT status FROM Udstyr WHERE Udstyr.Stregkode = '" + barcode + "'"; |
369 |
|
rs.Open(AFX_DB_USE_DEFAULT_TYPE,SQL); |
370 |
|
if (rs.GetRecordCount() >0) { |
371 |
|
rs.MoveFirst(); |
372 |
|
rs.GetFieldValue((short)0,status); |
373 |
|
} |
374 |
|
rs.Close(); |
375 |
|
|
376 |
|
if (reservationCount > 0 && status == "3") {//equipment is available and has at lease one reservation |
377 |
|
SQL = "UPDATE Udstyr SET Status = 2 WHERE Stregkode = '" + barcode + "'"; |
378 |
|
db.ExecuteSQL(SQL); |
379 |
|
} |
380 |
|
} |
381 |
|
|
382 |
|
//Developed by Torben H. Nielsen |
383 |
|
bool DatabaseLayer::DeleteReservation(CString barcode, CString resid) |
384 |
|
{ |
385 |
|
CString SQL = "DELETE FROM Resevation WHERE resevationid = " + resid; |
386 |
|
db.ExecuteSQL(SQL); |
387 |
|
checkReservations(barcode); |
388 |
|
return true; |
389 |
|
} |
390 |
|
|