/[H6]/ResultDetailsDialog.cpp
ViewVC logotype

Diff of /ResultDetailsDialog.cpp

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

revision 37 by torben, Mon Sep 4 08:54:27 2006 UTC revision 54 by torben, Tue Sep 12 09:09:30 2006 UTC
# Line 54  void ResultDetailsDialog::LoadData(void) Line 54  void ResultDetailsDialog::LoadData(void)
54          if (m_loadingData == true)          if (m_loadingData == true)
55                  return;                  return;
56          m_loadingData = true;          m_loadingData = true;
         Equipment currentdata = CommonStorage::Instance()->getSearchResult()[m_resultIndex];  
57    
58          GetDlgItem(IDC_BARCODE)->SetWindowText(currentdata.barcode);          GetDlgItem(IDC_BARCODE)->SetWindowText(m_equipment.barcode);
59          GetDlgItem(IDC_NAME)->SetWindowText(currentdata.name);          GetDlgItem(IDC_NAME)->SetWindowText(m_equipment.name);
60          GetDlgItem(IDC_DESCRIPTION)->SetWindowText(currentdata.description);          GetDlgItem(IDC_DESCRIPTION)->SetWindowText(m_equipment.description);
61          GetDlgItem(IDC_PLACEMENT)->SetWindowText(currentdata.placement);          GetDlgItem(IDC_PLACEMENT)->SetWindowText(m_equipment.placement);
62          GetDlgItem(IDC_STATUS)->SetWindowText(currentdata.status);          GetDlgItem(IDC_STATUS)->SetWindowText(m_equipment.status);
63    
64          m_loadingData = false;          m_loadingData = false;
65  }  }
# Line 68  void ResultDetailsDialog::LoadData(void) Line 67  void ResultDetailsDialog::LoadData(void)
67  void ResultDetailsDialog::LoadListControls(void)  void ResultDetailsDialog::LoadListControls(void)
68  {  {
69          if (CommonStorage::Instance()->getAdmin() ) {          if (CommonStorage::Instance()->getAdmin() ) {
                 Equipment currentdata = CommonStorage::Instance()->getSearchResult()[m_resultIndex];  
70    
71                  //load Equipment::checkouts                  //load Equipment::checkouts
72                  CListCtrl *checkouts = (CListCtrl*) GetDlgItem(IDC_CHECKOUTS);                  CListCtrl *checkouts = (CListCtrl*) GetDlgItem(IDC_CHECKOUTS);
73                  checkouts->DeleteAllItems();                  checkouts->DeleteAllItems();
74                                    
75                  for (int i=0; i<currentdata.checkouts.size(); i++) {                  for (int i=0; i<m_equipment.checkouts.size(); i++) {
76                          int nItem = checkouts->InsertItem(i,currentdata.checkouts[i].inits);                          int nItem = checkouts->InsertItem(i, m_equipment.checkouts[i].inits);
77                          checkouts->SetItemText(nItem,1,currentdata.checkouts[i].startdate);                          checkouts->SetItemText(nItem,1, m_equipment.checkouts[i].startdate);
78                          checkouts->SetItemText(nItem,2,currentdata.checkouts[i].enddate);                          checkouts->SetItemText(nItem,2, m_equipment.checkouts[i].enddate);
79                          checkouts->SetItemText(nItem,3,currentdata.checkouts[i].numdays);                          checkouts->SetItemText(nItem,3, m_equipment.checkouts[i].numdays);
80                  }                  }
81                  checkouts->SetColumnWidth(0,LVSCW_AUTOSIZE_USEHEADER);                  checkouts->SetColumnWidth(0,LVSCW_AUTOSIZE_USEHEADER);
82                  checkouts->SetColumnWidth(1,LVSCW_AUTOSIZE_USEHEADER);                  checkouts->SetColumnWidth(1,LVSCW_AUTOSIZE_USEHEADER);
# Line 90  void ResultDetailsDialog::LoadListContro Line 88  void ResultDetailsDialog::LoadListContro
88                  reservations->DeleteAllItems();                  reservations->DeleteAllItems();
89    
90    
91                  for (int i=0; i<currentdata.reservations.size(); i++) {                  for (int i=0; i<m_equipment.reservations.size(); i++) {
92                          CString tmp;                          CString tmp;
93                          tmp.Format("%d", i+1);                          tmp.Format("%d", i+1);
94                          int nItem = reservations->InsertItem(i, tmp);                          int nItem = reservations->InsertItem(i, tmp);
95                          reservations->SetItemText(nItem,1,  currentdata.reservations[i].inits);                          reservations->SetItemText(nItem, 1, m_equipment.reservations[i].inits);
96                          reservations->SetItemText(nItem,2, currentdata.reservations[i].startdate);                          reservations->SetItemText(nItem, 2, m_equipment.reservations[i].startdate);
97                                                    
98                  }                  }
99    
100                  if (currentdata.reservations.size() > 0)                  if (m_equipment.reservations.size() > 0)
101                          GetDlgItem(IDC_DELRES)->EnableWindow(true);                          GetDlgItem(IDC_DELRES)->EnableWindow(true);
102    
103    
# Line 145  BOOL ResultDetailsDialog::OnInitDialog() Line 143  BOOL ResultDetailsDialog::OnInitDialog()
143          GetDlgItem(IDC_CHECKOUT)->EnableWindow(CommonStorage::Instance()->getAdmin());          GetDlgItem(IDC_CHECKOUT)->EnableWindow(CommonStorage::Instance()->getAdmin());
144          GetDlgItem(IDC_RETURN)->EnableWindow(CommonStorage::Instance()->getAdmin());          GetDlgItem(IDC_RETURN)->EnableWindow(CommonStorage::Instance()->getAdmin());
145    
146          CString status = CommonStorage::Instance()->getSearchResult()[m_resultIndex].status;          m_equipment = CommonStorage::Instance()->getDBLayer()->GetEquipment(m_barcode);
   
         if (status == "Ledig") {  
                 GetDlgItem(IDC_RETURN)->EnableWindow(false);  
                 GetDlgItem(IDC_RESERVE)->EnableWindow(false);  
         }  
   
         if (status == "Udlånt")  
                 GetDlgItem(IDC_CHECKOUT)->EnableWindow(false);  
         if (status == "Reserveret")  
                 GetDlgItem(IDC_RETURN)->EnableWindow(false);  
147    
148            
149            EnableControls();
150          LoadData();          LoadData();
151          LoadListControls();          LoadListControls();
152    
# Line 201  void ResultDetailsDialog::OnBnClickedClo Line 191  void ResultDetailsDialog::OnBnClickedClo
191    
192  void ResultDetailsDialog::OnBnClickedReturn()  void ResultDetailsDialog::OnBnClickedReturn()
193  {  {
         CString barcode = CommonStorage::Instance()->getSearchResult()[m_resultIndex].barcode;  
194    
195          CommonStorage::Instance()->getDBLayer()->ReturnEquipment(barcode);          DatabaseLayer *dblayer = CommonStorage::Instance()->getDBLayer();
196          ((SearchDialog*)CommonStorage::Instance()->getTabCtrl()->m_tabs[0])->OnBnClickedSearch();          dblayer->ReturnEquipment(m_barcode);
197          ((ResultDialog*)CommonStorage::Instance()->getTabCtrl()->m_tabs[1])->LoadResults();          this->ReloadData();
         OnOK();  
198  }  }
199    
200  void ResultDetailsDialog::OnBnClickedCheckout()  void ResultDetailsDialog::OnBnClickedCheckout()
201  {  {
         CString status = CommonStorage::Instance()->getSearchResult()[m_resultIndex].status;  
202          CheckoutDialog check;          CheckoutDialog check;
203    
204          check.m_checkoutMode = true;          check.m_checkoutMode = true;    
           
205    
206          Reservation  topReservation;          Reservation  topReservation;
207          if (status == "Reserveret") {          if (m_equipment.status == "Reserveret") {
208                  topReservation = CommonStorage::Instance()->getSearchResult()[m_resultIndex].reservations[0];                  
209                    topReservation = m_equipment.reservations[0];
210                  check.m_reservedTo = topReservation.inits;                  check.m_reservedTo = topReservation.inits;
211          }          }
212    
# Line 233  void ResultDetailsDialog::OnBnClickedChe Line 220  void ResultDetailsDialog::OnBnClickedChe
220    
221                  dblayer->CheckoutEquipment(p, eq, atoi(check.m_numdays) );                  dblayer->CheckoutEquipment(p, eq, atoi(check.m_numdays) );
222    
223                  if (status == "Reserveret") { //if the equipment was reserved, we must delete the reservation                  if (m_equipment.status == "Reserveret") { //if the equipment was reserved, we must delete the reservation
224                          dblayer->DeleteReservation(eq.barcode, topReservation.reservationID);                          dblayer->DeleteReservation(eq.barcode, topReservation.reservationID);
225                  }                  }
226                  ((SearchDialog*)CommonStorage::Instance()->getTabCtrl()->m_tabs[0])->OnBnClickedSearch();                  this->ReloadData();
                 ((ResultDialog*)CommonStorage::Instance()->getTabCtrl()->m_tabs[1])->LoadResults();  
                 OnOK();  
227          }          }
228  }  }
229    
# Line 254  void ResultDetailsDialog::OnBnClickedRes Line 239  void ResultDetailsDialog::OnBnClickedRes
239                  GetDlgItem(IDC_BARCODE)->GetWindowText(barcode);                  GetDlgItem(IDC_BARCODE)->GetWindowText(barcode);
240                  dblayer->EquipmentReservation(barcode,p);                  dblayer->EquipmentReservation(barcode,p);
241    
242                  ((SearchDialog*)CommonStorage::Instance()->getTabCtrl()->m_tabs[0])->OnBnClickedSearch();                  this->ReloadData();
                 ((ResultDialog*)CommonStorage::Instance()->getTabCtrl()->m_tabs[1])->LoadResults();  
                 LoadListControls();  
   
243          }          }
244  }  }
245    
# Line 265  void ResultDetailsDialog::OnBnClickedDel Line 247  void ResultDetailsDialog::OnBnClickedDel
247  {  {
248          int sel = ((CListCtrl*)GetDlgItem(IDC_RESERVATIONS))->GetSelectionMark();          int sel = ((CListCtrl*)GetDlgItem(IDC_RESERVATIONS))->GetSelectionMark();
249          if (sel != -1) {          if (sel != -1) {
250                  CString reservationID = CommonStorage::Instance()->getSearchResult()[m_resultIndex].reservations[sel].reservationID;                  CString reservationID = m_equipment.reservations[sel].reservationID;
251                  CString barcode = CommonStorage::Instance()->getSearchResult()[m_resultIndex].barcode;                  CString barcode = m_equipment.barcode;
252                  CommonStorage::Instance()->getDBLayer()->DeleteReservation(barcode, reservationID);                  CommonStorage::Instance()->getDBLayer()->DeleteReservation(barcode, reservationID);
253                  ((SearchDialog*)CommonStorage::Instance()->getTabCtrl()->m_tabs[0])->OnBnClickedSearch();                  this->ReloadData();
254                  ((ResultDialog*)CommonStorage::Instance()->getTabCtrl()->m_tabs[1])->LoadResults();  
                 LoadListControls();  
255          } else {          } else {
256                  MessageBox("No reservation is selected");                  MessageBox("No reservation is selected");
257          }          }
258  }  }
259    
260    void ResultDetailsDialog::ReloadData(void)
261    {
262            m_equipment = CommonStorage::Instance()->getDBLayer()->GetEquipment(m_barcode);
263            this->LoadData();
264            this->LoadListControls();
265            this->EnableControls();
266    
267            ((SearchDialog*)CommonStorage::Instance()->getTabCtrl()->m_tabs[0])->OnBnClickedSearch();
268            ((ResultDialog*)CommonStorage::Instance()->getTabCtrl()->m_tabs[1])->LoadResults();
269    }
270    
271    void ResultDetailsDialog::EnableControls(void)
272    {
273            if (CommonStorage::Instance()->getAdmin() ) {
274                    if (m_equipment.status == "Ledig") {
275                            GetDlgItem(IDC_CHECKOUT)->EnableWindow(true);
276                            GetDlgItem(IDC_RETURN)->EnableWindow(false);
277                            GetDlgItem(IDC_RESERVE)->EnableWindow(false);
278                    } else if (m_equipment.status == "Udlånt") {
279                            GetDlgItem(IDC_CHECKOUT)->EnableWindow(false);
280                            GetDlgItem(IDC_RETURN)->EnableWindow(true);
281                            GetDlgItem(IDC_RESERVE)->EnableWindow(true);
282                    } else { //m_equipment.status == "Reserveret"
283                            GetDlgItem(IDC_CHECKOUT)->EnableWindow(true);
284                            GetDlgItem(IDC_RETURN)->EnableWindow(false);
285                            GetDlgItem(IDC_RESERVE)->EnableWindow(true);
286                    }
287            }
288    }

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

  ViewVC Help
Powered by ViewVC 1.1.20