📄 borrowcontinue.cpp
字号:
// BorrowContinue.cpp : implementation file
//
#include "stdafx.h"
#include "LIBRARY.h"
#include "BorrowContinue.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CBorrowContinue dialog
CBorrowContinue::CBorrowContinue(CWnd* pParent /*=NULL*/)
: CDialog(CBorrowContinue::IDD, pParent)
{
//{{AFX_DATA_INIT(CBorrowContinue)
m_strBookNum = _T("");
m_strCardNum = _T("");
//}}AFX_DATA_INIT
}
void CBorrowContinue::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CBorrowContinue)
DDX_Control(pDX, IDC_LIST_DETAIL, m_listDetail);
DDX_Control(pDX, IDC_LIST_BORROWED, m_listBorrowed);
DDX_Text(pDX, IDC_BOOK_NUM, m_strBookNum);
DDX_Text(pDX, IDC_CARD_NUM, m_strCardNum);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CBorrowContinue, CDialog)
//{{AFX_MSG_MAP(CBorrowContinue)
ON_LBN_SELCHANGE(IDC_LIST_BORROWED, OnSelchangeListBorrowed)
ON_BN_CLICKED(IDBORROWHISTORY, OnBorrowhistory)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CBorrowContinue message handlers
void CBorrowContinue::OnOK()
{
// TODO: Add extra validation here
UpdateData();
if (! IsValidCard(m_strCardNum))
{
return;
}
if (BookList(m_strCardNum,m_strBookNum))
{
return;
}
if(ContinueBorrow(m_strCardNum,m_strBookNum))
AfxMessageBox("恭喜您,续借成功!");
else return;
CDialog::OnOK();
}
bool CBorrowContinue::BookList(CString cardNum,CString bnn)
{
CString tmpstr;
CString bookNumm;
m_listBorrowed.ResetContent();
int nBooks=0;
bool flag=false;
if (!m_borrowSet.IsOpen())
m_borrowSet.Open();
m_borrowSet.m_strFilter.Format("cno= '%s' and return_date is null",cardNum);
// m_borrowSet.m_strSort="borrow_date asc";
m_borrowSet.Requery();
if (m_borrowSet.IsEOF())
{
if (bnn=="") AfxMessageBox("当前无借书记录!");
return false;
}
CTime today=CTime::GetCurrentTime();
CTimeSpan diffDays;
while (!m_borrowSet.IsEOF())
{
nBooks++;
CTimeSpan span(45,0,0,0);
CTime myTime=m_borrowSet.m_borrow_date;
CString strbTime;
strbTime=myTime.Format("%Y-%m-%d %H:%M:%S");
CString strTime;
myTime=myTime+span;
strTime=myTime.Format("%Y-%m-%d %H:%M:%S");
tmpstr=" "+strbTime+" "+strTime+" "+m_borrowSet.m_bno+" ";
if (!m_bookSet.IsOpen())
m_bookSet.Open();
bookNumm=m_borrowSet.m_bno;
m_bookSet.m_strFilter.Format("bno= '%s'",bookNumm);
m_bookSet.Requery();
int k=(32 - m_bookSet.m_title.GetLength());
for (int i = 0; i < k; i++)
tmpstr+=" ";
tmpstr+=m_bookSet.m_title;
m_listBorrowed.AddString(tmpstr);
diffDays=today-m_borrowSet.m_borrow_date;
if(diffDays.GetDays()>45)
{
flag=true;
}
m_borrowSet.MoveNext();
}
if (flag==true) AfxMessageBox("温馨提醒:您有书过期了,请先归还图书馆才能继续借书!");
// AfxMessageBox("!!");
return flag;
}
bool CBorrowContinue::IsValidCard(CString cardNum)
{
if (!m_cardSet.IsOpen())
m_cardSet.Open();
m_cardSet.m_strFilter.Format("Cno= '%s'",cardNum);
m_cardSet.Requery();
if (m_cardSet.IsEOF())
{
AfxMessageBox("抱歉,该卡号不存在!请检查输入。");
return false;
}
return true;
}
bool CBorrowContinue::ContinueBorrow(CString cardNum, CString bookNum)
{
CLIBRARYApp *App = (CLIBRARYApp *)AfxGetApp();
CTime MinTime=CTime::GetCurrentTime();
CTimeSpan span(45,0,0,0);
if (bookNum=="") return false;
if (!m_borrowSet.IsOpen())
m_borrowSet.Open();
m_borrowSet.m_strFilter.Format("bno= '%s' and cno= '%s' and return_date is null",bookNum,cardNum);
m_borrowSet.Requery();
if (m_borrowSet.IsEOF())
{
AfxMessageBox("抱歉,您没有借此书,或者已经归还,请检查输入是否正确。");
bookNum=" ";
BookList(cardNum,bookNum);
return false;
}
bool flag=false;
while(!m_borrowSet.IsEOF())
{
if (m_borrowSet.m_borrow_date<MinTime && m_borrowSet.m_borrow_date+span>CTime::GetCurrentTime())
MinTime=m_borrowSet.m_borrow_date,flag=true;
m_borrowSet.MoveNext();
}
if (!flag)
{
AfxMessageBox("您借的书已经过期了,无法完成续借。");
return false;
}
CTime myTime=MinTime;
CString strTime;
strTime=myTime.Format("%Y-%m-%d %H:%M:%S");
if (!m_borrowSet.IsOpen())
m_borrowSet.Open();
// AfxMessageBox(strTime);
m_borrowSet.m_strFilter.Format("borrow_date= '%s' and bno= '%s' and cno= '%s'",strTime,bookNum,cardNum);
m_borrowSet.Requery();
if (m_borrowSet.m_reborrowed=="Y")
{
AfxMessageBox("对不起,您已经续借过这本书了,不能再次续借。");
return false;
}
m_borrowSet.Edit();
m_borrowSet.m_borrow_date=CTime::GetCurrentTime();
m_borrowSet.m_reborrowed="Y";
m_borrowSet.m_aid=App->aID;
m_borrowSet.Update();
m_borrowSet.Requery();
return true;
}
void CBorrowContinue::OnSelchangeListBorrowed()
{
// TODO: Add your control notification handler code here
// TODO: Add your control notification handler code here
CString Title[9];
Title[0]="图书编号: ";
Title[1]="类别: ";
Title[2]="书名: ";
Title[3]="出版社: ";
Title[4]="出版年份: ";
Title[5]="作者: ";
Title[6]="价格: ";
Title[7]="总藏书量: ";
Title[8]="现藏数量: ";
m_listDetail.ResetContent();
int curSel;
CString strDetail;
CString strline;
curSel=m_listBorrowed.GetCurSel();
m_borrowSet.SetAbsolutePosition(curSel+1);
for (unsigned int i=0;i<m_bookSet.m_nFields;i++)
{
CString bookNumm=m_borrowSet.m_bno;
if (!m_bookSet.IsOpen())
m_bookSet.Open();
bookNumm=m_borrowSet.m_bno;
m_bookSet.m_strFilter.Format("bno= '%s'",bookNumm);
m_bookSet.Requery();
m_bookSet.GetFieldValue(i,strDetail);
strline.Empty();
strline+=Title[i];
strline+=strDetail;
m_listDetail.AddString(strline);
}
}
void CBorrowContinue::OnBorrowhistory()
{
// TODO: Add your control notification handler code here
UpdateData();
m_strBookNum="";
UpdateData(FALSE);
OnOK();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -