📄 booklostdlg.cpp
字号:
// BookLostDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Library.h"
#include "BookLostDlg.h"
#include "BookInfoDlg.h"
#include "PersonInfoDlg.h"
#include "BorrowSet.h"
#include "BookSet.h"
#include "PunishSet.h"
#include "ProofSet.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CBookLostDlg dialog
CBookLostDlg::CBookLostDlg(CWnd* pParent /*=NULL*/)
: CDialog(CBookLostDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CBookLostDlg)
m_strBookID = _T("");
m_strProofID = _T("");
m_dPuniMoney = 0.0;
//}}AFX_DATA_INIT
}
void CBookLostDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CBookLostDlg)
DDX_Text(pDX, IDC_EDIT_BOOK_NO, m_strBookID);
DDX_Text(pDX, IDC_EDIT_PROOF_NO, m_strProofID);
DDX_Text(pDX, IDC_EDIT_PUNI_MONEY, m_dPuniMoney);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CBookLostDlg, CDialog)
//{{AFX_MSG_MAP(CBookLostDlg)
ON_BN_CLICKED(IDC_BUTTON_BOOK_INFO, OnButtonBookInfo)
ON_BN_CLICKED(IDC_BUTTON_PROOF_INFO, OnButtonProofInfo)
ON_BN_CLICKED(IDC_BUTTON_LOST, OnButtonLost)
ON_WM_CLOSE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CBookLostDlg message handlers
void CBookLostDlg::OnButtonBookInfo()
{
UpdateData();
CBookInfoDlg m_dlg;
m_dlg.m_strBookID=m_strBookID;
m_dlg.DoModal();
}
void CBookLostDlg::OnButtonProofInfo()
{
UpdateData();
CPersonInfoDlg m_dlg;
m_dlg.m_strProofID=m_strProofID;
m_dlg.DoModal();
}
void CBookLostDlg::OnButtonLost()
{
UpdateData();
if(m_strBookID.Compare("")==0||m_strProofID.Compare("")==0)
{
MessageBox("请正确填写所需数据","图书挂失");
return;
}
if(!m_database.IsOpen())
{
if(!m_database.Open(_T("Library")))
{
MessageBox("无法连接数据源!","图书挂失");
return;
}
}
double m_dblPunish=0.0;
CString strSQL;
CTime curTime,oriTime;
//察看借书(Borrow_Info表)信息,看是否超期
CBorrowSet *m_pBorrow=new CBorrowSet(&m_database);
strSQL.Format("select * from Borrow_Info where Proof_ID='%s' AND Book_ID='%s'",m_strProofID,m_strBookID);
m_pBorrow->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
if(m_pBorrow->GetRecordCount()==0)
{
MessageBox("没有关于这个人借这本书的信息!","图书挂失");
m_pBorrow->Close();
m_database.Close();
return;
}
int m_yeardiff,m_monthdiff,m_daydiff,m_timediff;
oriTime=m_pBorrow->m_Borrow_Date;
curTime=CTime::GetCurrentTime();
m_yeardiff=curTime.GetYear()-oriTime.GetYear();
m_monthdiff=curTime.GetMonth()-oriTime.GetMonth();
m_daydiff=curTime.GetDay()-oriTime.GetDay();
m_timediff=m_yeardiff*365+m_monthdiff*30+m_daydiff;
//超期,予以罚款
if(m_timediff>=60)
{
//60天为超时限制时间,一天缴纳罚款0.1元
m_dblPunish=m_dblPunish+(m_timediff-60)*0.1;
}
//无论是否超期,首先进行还书操作,然后处以丢书罚款
//Borrow_Info删除该条记录
m_pBorrow->Delete();
m_pBorrow->Close();
//Proof_Info减少借书数量
CProofSet *m_pProof=new CProofSet(&m_database);
strSQL.Format("select * from Proof_Info where Proof_ID='%s'",m_strProofID);
m_pProof->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
if(m_pProof->GetRecordCount()==0)
{
MessageBox("读取借书人信息出错,将进行回退,请与馆主联系!","图书挂失");
//回退,这里不进行
m_pProof->Close();
m_database.Close();
return;
}
m_pProof->Edit();
m_pProof->m_Now_Borrow_Amount--;
m_pProof->Update();
m_pProof->Requery();
m_pProof->Close();
//查询书籍信息,书库藏书总量减一
strSQL.Format("select * from Book_Info where Book_ID='%s'",m_strBookID);
CBookSet *m_pBook=new CBookSet(&m_database);
m_pBook->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
if(m_pBook->GetRecordCount()==0)
{
MessageBox("查询书籍信息出错,将进行回退,请与馆主联系!","图书挂失");
m_pBook->Close();
m_database.Close();
}
m_pBook->Edit();
m_pBook->m_Total_Amount--;
m_pBook->Update();
m_pBook->Requery();
//查询价格信息,计算罚款金额
double m_dPrice=0.0;
m_dPrice=m_pBook->m_Price;
m_dblPunish+=m_dPrice*3;
m_pBook->Close();
//将罚款信息存入罚款信息表中
strSQL.Format("select * from Punish_Info");
CPunishSet *m_pset=new CPunishSet(&m_database);
m_pset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
if(m_pset->GetRecordCount()==0)
{
MessageBox("目前还没有任何罚款信息!","图书挂失");
}
m_pset->AddNew();
m_pset->SetFieldNull(&(m_pset->m_Proof_ID),FALSE);
m_pset->m_Proof_ID=m_strProofID;
m_pset->SetFieldNull(&(m_pset->m_Book_ID),FALSE);
m_pset->m_Book_ID=m_strBookID;
m_pset->SetFieldNull(&(m_pset->m_Borrow_Date),FALSE);
m_pset->m_Borrow_Date=oriTime;
m_pset->SetFieldNull(&(m_pset->m_Return_Date),FALSE);
m_pset->m_Return_Date=curTime;
m_pset->SetFieldNull(&(m_pset->m_Puni_Money),FALSE);
m_pset->m_Puni_Money=m_dblPunish;
m_pset->Update();
m_pset->Requery();
m_pset->Close();
m_database.Close();
MessageBox("挂失成功","图书挂失");
}
void CBookLostDlg::OnClose()
{
if(m_database.IsOpen())
m_database.Close();
OnOK();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -