📄 bookborrowdlg.cpp
字号:
// BOOKBORROWDLG.cpp : implementation file
//
#include "stdafx.h"
#include "MyLibrary.h"
#include "BookRS.h"
#include "BorrowRS.h"
#include "CardRS.h"
#include "Admin.h"
#include "BOOKBORROWDLG.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CBOOKBORROWDLG dialog
CBOOKBORROWDLG::CBOOKBORROWDLG(CWnd* pParent /*=NULL*/)
: CDialog(CBOOKBORROWDLG::IDD, pParent)
{
//{{AFX_DATA_INIT(CBOOKBORROWDLG)
m_strBookNum = _T("");
m_strCardNum = _T("");
//}}AFX_DATA_INIT
}
void CBOOKBORROWDLG::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CBOOKBORROWDLG)
DDX_Text(pDX, IDC_BOOK_NUM, m_strBookNum);
DDX_Text(pDX, IDC_CARD_NUM, m_strCardNum);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CBOOKBORROWDLG, CDialog)
//{{AFX_MSG_MAP(CBOOKBORROWDLG)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CBOOKBORROWDLG message handlers
void CBOOKBORROWDLG::OnOK()
{
// TODO: Add extra validation here
UpdateData();
if(!IsValidCard(m_strCardNum))
{
CDialog::OnOK();
return;
}
if (AnyBookExpired(m_strCardNum))
{
CDialog::OnOK();
return;
}
if(!AllowdBorrow(m_strBookNum))
{
CDialog::OnOK();
return;
}
if(BorrowBook(m_strCardNum,m_strBookNum))
{
AfxMessageBox("借书成功");
}
// else
// {
// AfxMessageBox("借书失败");
// }
CDialog::OnOK();
}
bool CBOOKBORROWDLG::IsValidCard(const CString &cardNum)
{
if(!m_cardSet.IsOpen())
{
m_cardSet.Open();
}
m_cardSet.m_strFilter.Format("card_num='%s'", cardNum);
m_cardSet.Requery();
if(m_cardSet.IsEOF())
{
AfxMessageBox("该卡号不存在");
return false;
}
return true;
}
bool CBOOKBORROWDLG::AnyBookExpired(const CString &cardNum)
{
int nbook=0;
if(!m_borrowSet.IsOpen())
{
m_borrowSet.Open();
}
m_borrowSet.m_strFilter.Format("card_num='%s'", cardNum);
m_borrowSet.Requery();
CTime today=CTime::GetCurrentTime();
CTimeSpan diffDays;
CTimeSpan diffDays1=m_borrowSet.m_return_date-m_borrowSet.m_borrow_date;
while(!m_borrowSet.IsEOF()&&(diffDays1.GetDays()==30))
{
nbook++;
diffDays=today-m_borrowSet.m_borrow_date;
if(diffDays.GetDays()>30)
{
AfxMessageBox("您有书过期了");
return true;
}
m_borrowSet.MoveNext();
}
if(nbook>5)
{
AfxMessageBox("您借书总数超过限额了");
return true;
}
return false;
m_borrowSet.Close();
}
bool CBOOKBORROWDLG::AllowdBorrow(const CString &bookNum)
{
if(!m_bookSet.IsOpen())
m_bookSet.Open();
m_bookSet.m_strFilter.Format("ISBN='%s'", bookNum);
m_bookSet.Requery();
if(m_bookSet.IsEOF())
{
AfxMessageBox("该书不存在");
return false;
}
return true;
}
bool CBOOKBORROWDLG::BorrowBook(const CString &cardNum, const CString &bookNum)
{
if(!m_bookSet.IsOpen())
m_bookSet.Open();
m_bookSet.m_strFilter.Format("ISBN='%s'",bookNum );
m_bookSet.Requery();
if(m_bookSet.m_present_num<=0)
{
AfxMessageBox("该图书已经全部借出");
if(!m_borrowSet.IsOpen())
m_borrowSet.Open();
m_borrowSet.m_strFilter.Format("ISBN='%s'",bookNum );
m_borrowSet.Requery();
CTime today=CTime::GetCurrentTime();
CTimeSpan compare_min=100, differ;
while(!m_borrowSet.IsEOF())
{
differ=today-m_borrowSet.m_return_date;
if(compare_min>differ)
compare_min=differ;
m_borrowSet.MoveNext();
}
CString str;
str.Format(
"该图书已经全部借出\n最近的还书日期为%d-%d-%d",
m_borrowSet.m_return_date.GetYear(),
m_borrowSet.m_return_date.GetMonth(),
m_borrowSet.m_return_date.GetDay()
);
AfxMessageBox(str);
return false;
}
m_bookSet.Edit();
m_bookSet.m_present_num-=1;
m_bookSet.Update();
if(!m_borrowSet.IsOpen())
m_borrowSet.Open();
extern CString Administrator;
m_borrowSet.AddNew();
m_borrowSet.m_ISBN=bookNum;
m_borrowSet.m_card_num=cardNum;
m_borrowSet.m_borrow_date=CTime::GetCurrentTime();
m_borrowSet.m_managerID=Administrator;
CTimeSpan span(30,0,0,0);//30天的时间间隔
CTime nextMonth=CTime::GetCurrentTime()+span;//30天后的日期
m_borrowSet.m_return_date=nextMonth;
m_borrowSet.Update();
m_borrowSet.Requery();
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -