/[H6]/PostgresLayer.cpp
ViewVC logotype

Diff of /PostgresLayer.cpp

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

revision 47 by torben, Wed Sep 6 20:27:24 2006 UTC revision 54 by torben, Tue Sep 12 09:09:30 2006 UTC
# Line 235  Equipment PostgresLayer::GetEquipment(CS Line 235  Equipment PostgresLayer::GetEquipment(CS
235                  e.description = description;                  e.description = description;
236                  e.placement = placement;                  e.placement = placement;
237                  e.status = status;                  e.status = status;
238    
239                    rs.Close();
240    
241                    //fill Equipment::checkouts
242                    
243                    SQL = "SELECT 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 LIMIT 10";
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    
286          }          }
         rs.Close();  
287          return e;          return e;
288  }  }
289    
# Line 319  vector<Equipment> PostgresLayer::Search( Line 366  vector<Equipment> PostgresLayer::Search(
366                  rs.Close();                  rs.Close();
367          }          }
368    
         // 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 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 LIMIT 10";  
                 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();  
         }  
   
369          return buffer;          return buffer;
370  }  }
371    

Legend:
Removed from v.47  
changed lines
  Added in v.54

  ViewVC Help
Powered by ViewVC 1.1.20