/[H6]/MicrosoftDBLayer.cpp
ViewVC logotype

Diff of /MicrosoftDBLayer.cpp

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

revision 52 by torben, Sat Sep 9 05:24:33 2006 UTC revision 56 by torben, Tue Sep 12 10:16:06 2006 UTC
# Line 210  vector<Equipment> MicrosoftDBLayer::GetE Line 210  vector<Equipment> MicrosoftDBLayer::GetE
210  Equipment MicrosoftDBLayer::GetEquipment(CString wantBarcode)  Equipment MicrosoftDBLayer::GetEquipment(CString wantBarcode)
211  {  {
212    
213          CString barcode,name,description,placement,status;          CString barcode,name,description,placement,status,statusid;
214    
215          CString SQL;          CString SQL;
216    
# Line 218  Equipment MicrosoftDBLayer::GetEquipment Line 218  Equipment MicrosoftDBLayer::GetEquipment
218    
219          Equipment e;          Equipment e;
220    
221          SQL.Format("SELECT Stregkode,Navn,Udstyr.Beskrivelse,Placering,Status.Beskrivelse FROM Udstyr INNER JOIN Status ON Udstyr.Status = Status.StatusID Where (Stregkode = '%s')", wantBarcode);          SQL.Format("SELECT Stregkode,Navn,Udstyr.Beskrivelse,Placering,Status.Beskrivelse, Udstyr.Status FROM Udstyr INNER JOIN Status ON Udstyr.Status = Status.StatusID Where (Stregkode = '%s')", wantBarcode);
222          CRecordset rs(&db);          CRecordset rs(&db);
223          rs.Open(AFX_DB_USE_DEFAULT_TYPE, SQL);          rs.Open(AFX_DB_USE_DEFAULT_TYPE, SQL);
224          if (!rs.IsEOF() )          if (!rs.IsEOF() )
# Line 228  Equipment MicrosoftDBLayer::GetEquipment Line 228  Equipment MicrosoftDBLayer::GetEquipment
228                  rs.GetFieldValue(2,description);                  rs.GetFieldValue(2,description);
229                  rs.GetFieldValue(3,placement);                  rs.GetFieldValue(3,placement);
230                  rs.GetFieldValue(4,status);                  rs.GetFieldValue(4,status);
231                    rs.GetFieldValue(5,statusid);
232    
233                  e.barcode = barcode;                  e.barcode = barcode;
234                  e.name = name;                  e.name = name;
235                  e.description = description;                  e.description = description;
236                  e.placement = placement;                  e.placement = placement;
237                  e.status = status;                  e.status = status;
238                    e.statusid = atoi( statusid );
239    
240                    rs.Close();
241    
242                    //fill Equipment::checkouts
243                    SQL = "SELECT TOP 10 Udlån.StartDato, Udlån.Afleveringsdato,Udlån.Antaldage, Person.Initialer\
244                                    FROM Udlån\
245                                    INNER JOIN Person ON Udlån.PersonID = Person.PersonID ";
246                    SQL += "WHERE Udlån.Stregkode = " + barcode + " ORDER BY STARTDATO DESC";
247                    CRecordset rs(&db);
248                    rs.Open(AFX_DB_USE_DEFAULT_TYPE, SQL);
249                    if (rs.GetRecordCount()>0) {
250                            rs.MoveFirst();
251                            while ( !rs.IsEOF() ) {
252                                    Checkout check;
253                                    rs.GetFieldValue((short)0, check.startdate);
254                                    rs.GetFieldValue(1, check.enddate);
255                                    rs.GetFieldValue(2, check.numdays);
256                                    rs.GetFieldValue(3, check.inits);
257    
258                                    e.checkouts.push_back(check);
259                                    rs.MoveNext();
260                            }
261                    }
262                    rs.Close();
263                                    
264                    // fill Equipment::reservations
265                    SQL = "SELECT Resevation.ResevationID, Resevation.StartDato,  Person.Initialer\
266                                    FROM Resevation\
267                                    INNER JOIN Person ON Resevation.PersonID = Person.PersonID ";
268                    SQL += "WHERE Resevation.Stregkode = " + barcode + " ORDER BY STARTDATO ASC";
269                    
270                    rs.Open(AFX_DB_USE_DEFAULT_TYPE, SQL);
271                    if (rs.GetRecordCount()>0) {
272                            rs.MoveFirst();
273                            while ( !rs.IsEOF() ) {
274                                    Reservation res;
275                                    rs.GetFieldValue((short)0, res.reservationID);
276                                    rs.GetFieldValue(1, res.startdate);
277                                    rs.GetFieldValue(2, res.inits);
278    
279                                    e.reservations.push_back(res);
280                                    rs.MoveNext();
281                            }
282                    }
283                    rs.Close();
284          }          }
285          rs.Close();  
286          return e;          return e;
287  }  }
288    
# Line 318  vector<Equipment> MicrosoftDBLayer::Sear Line 365  vector<Equipment> MicrosoftDBLayer::Sear
365                  rs.Close();                  rs.Close();
366          }          }
367    
         // now I have the equipment rows the user asked for, now I need some more checkout and  
         // reservation data for each piece of equipment  
   
         for (int i=0; i<buffer.size(); i++) {  
                 //fill Equipment::checkouts  
                   
                 SQL = "SELECT TOP 10 Udlån.StartDato, Udlån.Afleveringsdato,Udlån.Antaldage, Person.Initialer\  
                                 FROM Udlån\  
                                 INNER JOIN Person ON Udlån.PersonID = Person.PersonID ";  
                 SQL += "WHERE Udlån.Stregkode = " + buffer[i].barcode + " ORDER BY STARTDATO DESC";  
                 CRecordset rs(&db);  
                 rs.Open(AFX_DB_USE_DEFAULT_TYPE, SQL);  
                 if (rs.GetRecordCount()>0) {  
                         rs.MoveFirst();  
                         while ( !rs.IsEOF() ) {  
                                 Checkout check;  
                                 rs.GetFieldValue((short)0, check.startdate);  
                                 rs.GetFieldValue(1, check.enddate);  
                                 rs.GetFieldValue(2, check.numdays);  
                                 rs.GetFieldValue(3, check.inits);  
   
                                 buffer[i].checkouts.push_back(check);  
                                 rs.MoveNext();  
                         }  
                 }  
                 rs.Close();  
                                   
                 // fill Equipment::reservations  
                 SQL = "SELECT Resevation.ResevationID, Resevation.StartDato,  Person.Initialer\  
                                 FROM Resevation\  
                                 INNER JOIN Person ON Resevation.PersonID = Person.PersonID ";  
                 SQL += "WHERE Resevation.Stregkode = " + buffer[i].barcode + " ORDER BY STARTDATO ASC";  
                   
                 rs.Open(AFX_DB_USE_DEFAULT_TYPE, SQL);  
                 if (rs.GetRecordCount()>0) {  
                         rs.MoveFirst();  
                         while ( !rs.IsEOF() ) {  
                                 Reservation res;  
                                 rs.GetFieldValue((short)0, res.reservationID);  
                                 rs.GetFieldValue(1, res.startdate);  
                                 rs.GetFieldValue(2, res.inits);  
   
                                 buffer[i].reservations.push_back(res);  
                                 rs.MoveNext();  
                         }  
                 }  
                 rs.Close();  
         }  
   
368          return buffer;          return buffer;
369  }  }
370    

Legend:
Removed from v.52  
changed lines
  Added in v.56

  ViewVC Help
Powered by ViewVC 1.1.20