/[H6]/DatabaseLayer.cpp
ViewVC logotype

Diff of /DatabaseLayer.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 26 by torben, Fri Sep 1 03:24:34 2006 UTC revision 31 by torben, Sun Sep 3 10:10:19 2006 UTC
# Line 1  Line 1 
1    /*
2     * Primary developers: Hedin & Kevin
3     */
4    
5  #include "StdAfx.h"  #include "StdAfx.h"
6  #include ".\databaselayer.h"  #include ".\databaselayer.h"
# Line 106  bool DatabaseLayer::ReturnEquipment(CStr Line 108  bool DatabaseLayer::ReturnEquipment(CStr
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    
# Line 119  bool DatabaseLayer::CheckoutEquipment(Pe Line 123  bool DatabaseLayer::CheckoutEquipment(Pe
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    
# Line 306  vector<Equipment> DatabaseLayer::Search( Line 309  vector<Equipment> DatabaseLayer::Search(
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";
# Line 318  vector<Equipment> DatabaseLayer::Search( Line 321  vector<Equipment> DatabaseLayer::Search(
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();
# Line 351  void DatabaseLayer::FillEquipmentVector( Line 353  void DatabaseLayer::FillEquipmentVector(
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    
377            if (reservationCount > 0 && status == 3) {//equipment is available and has at lease one reservation
378                    SQL = "UPDATE Udstyr SET Status = 2 WHERE Stregkode = '" + barcode + "'";
379                    db.ExecuteSQL(SQL);
380            }
381    }
382    
383    //Developed by Torben H. Nielsen
384    bool DatabaseLayer::DeleteReservation(CString barcode, CString resid)
385    {
386            CString SQL = "DELETE FROM Resevation WHERE resevationid = " + resid;
387            db.ExecuteSQL(SQL);
388            checkReservations(barcode);
389            return true;
390    }
391    

Legend:
Removed from v.26  
changed lines
  Added in v.31

  ViewVC Help
Powered by ViewVC 1.1.20