⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bargaindlg.cpp

📁 人力资源管理系统
💻 CPP
字号:
// BargainDlg.cpp : implementation file
//

#include "stdafx.h"
#include "hrms.h"
#include "BargainDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CBargainDlg dialog


CBargainDlg::CBargainDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CBargainDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CBargainDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	m_IsEditable = TRUE;
	m_Available = TRUE;
}


void CBargainDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CBargainDlg)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CBargainDlg, CDialog)
	//{{AFX_MSG_MAP(CBargainDlg)
	ON_BN_CLICKED(IDC_BARGAIN_SAVE, OnBargainSave)
	ON_BN_CLICKED(IDC_LOAD_BARGAIN_ITEM, OnLoadBargainItem)
	ON_COMMAND(IDM_OPEN, OnOpen)
	ON_COMMAND(IDM_LOAD_OUT, OnLoadOut)
	ON_COMMAND(IDM_LOAD_IN, OnLoadIn)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CBargainDlg message handlers

void CBargainDlg::SetEmployName(CString name)
{
	m_EmployeeName = name;
}

CBargainDlg::CBargainDlg(CString name)
{
	CBargainDlg();
}

void CBargainDlg::OnLoadBargainItem() 
{
	// TODO: Add your control notification handler code here
	RECT rect;
	POINT point;
	GetDlgItem(IDC_LOAD_BARGAIN_ITEM)->GetWindowRect(&rect);
	CMenu menu, *subMenu;
	menu.LoadMenu(IDR_FILE_SEARCH_MENU);
	subMenu = menu.GetSubMenu(0);
	if(!m_Available)
	{
		subMenu->EnableMenuItem(1, MF_GRAYED | MF_DISABLED | MF_BYPOSITION);
		subMenu->EnableMenuItem(2, MF_GRAYED | MF_DISABLED | MF_BYPOSITION);
	}

	point.x = rect.left;
	point.y = rect.bottom;
	subMenu->TrackPopupMenu(TPM_LEFTBUTTON, point.x, point.y, this);
}

void CBargainDlg::OnBargainSave() 
{
	// TODO: Add your control notification handler code here
	if(!m_IsEditable)
	{
		CString str;
		GetDlgItemText(IDC_EDIT1, str);
		if(IDYES != MessageBox("确定终止本合同吗?", "提示", MB_YESNO | MB_ICONWARNING))
			return ;
		if(InvalidateBargain(str, 2))
		{
			((CComboBox*)GetDlgItem(IDC_COMBO2))->SetCurSel(2);
			GetDlgItem(IDC_BARGAIN_SAVE)->EnableWindow(FALSE);
			MessageBox("成功终止!", "提示", MB_OK);
		}

		return ;
	}
	if(SaveBargain())
	{
		MessageBox("保存成功!");
		EndDialog(0);
		return ;
	}
}

BOOL CBargainDlg::SaveBargain()
{
	CADOOperation bargain;
	CString str;
	DWORD interger;
	SYSTEMTIME sysTime;
	BOOL ret = FALSE;

	bargain.OpenTable("tb_bargain");
	bargain.AddNew();
	GetDlgItemText(IDC_EDIT1, str);							//合约编号
	if(str.IsEmpty())
	{
		MessageBox("请输入有效的编号!", "提示", MB_ICONWARNING | MB_OK);
		bargain.CloseRecorset();
		return FALSE;
	}
	ret = bargain.SetItemContent("bargain_id", CADOOperation::ADO_TYPE_STRING, &str);
	if(!ret)
	{
		bargain.CloseRecorset();
		return FALSE;
	}
	GetDlgItemText(IDC_EDIT5, str);							//合约条款
	if(str.IsEmpty())
	{
		MessageBox("请输入合同的条款!", "提示", MB_ICONWARNING | MB_OK);
		bargain.CloseRecorset();
		return FALSE;
	}
	ret = bargain.SetItemContent("bargain_item", CADOOperation::ADO_TYPE_TEXT, &str);
	if(!ret)
	{
		bargain.CloseRecorset();
		bargain.UpdateData();
		return FALSE;
	}
	interger = GetDlgItemInt(IDC_EDIT3);					//合约有效期
	ret = bargain.SetItemContent("bargain_useful_life", CADOOperation::ADO_TYPE_INT, &interger);
	if(!ret)
	{
		bargain.CloseRecorset();
		return FALSE;
	}
															//合约生效日期
	((CDateTimeCtrl*)GetDlgItem(IDC_DATETIMEPICKER1))->GetTime(&sysTime);
	ret = bargain.SetItemContent("bargain_timeofbeceff", CADOOperation::ADO_TYPE_DATE, &sysTime);
	if(!ret)
	{
		bargain.CloseRecorset();
		return FALSE;
	}
															//得到合同状态
	interger = ((CComboBox*)GetDlgItem(IDC_COMBO2))->GetCurSel();
	ret = bargain.SetItemContent("bargain_state", CADOOperation::ADO_TYPE_INT, &interger);
	if(!ret)
	{
		bargain.CloseRecorset();
		return FALSE;
	}
	GetDlgItemText(IDC_EDIT4, str);							//得到签约人
	if(str.IsEmpty())
	{
		MessageBox("合约人不能为空!", "提示", MB_OK | MB_ICONWARNING);
		bargain.CloseRecorset();
		return FALSE;
	}
	ret = bargain.SetItemContent("bargain_employee", CADOOperation::ADO_TYPE_STRING, &str);
	if(!ret)
	{
		bargain.CloseRecorset();
		return FALSE;
	}
	GetDlgItemText(IDC_COMBO1, str);						//得到合同类型
	ret = bargain.SetItemContent("bargain_type", CADOOperation::ADO_TYPE_STRING, &str);
	if(!ret)
	{
		bargain.CloseRecorset();
		return FALSE;
	}

	bargain.UpdateData();
	bargain.CloseRecorset();
	return TRUE;
}

BOOL CBargainDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	UpdataState();

	if(!m_IsEditable)
	{
		ShowBargain(m_EmployeeName);
		DisableBargain();
		return TRUE;
	}
	SetDlgItemText(IDC_EDIT4, m_EmployeeName);
	((CComboBox*)GetDlgItem(IDC_COMBO2))->SetCurSel(0);
	SetDlgItemText(IDC_EDIT4, m_EmployeeName);
	CComboBox* pCom = (CComboBox*)GetDlgItem(IDC_COMBO1);
	CADOOperation barType;
	CString str;
	barType.OpenRecordset("select distinct template_type from tb_bargain_template");
	if(barType.IsLastRow())
	{
		barType.CloseRecorset();
		return TRUE;
	}
	barType.MoveFirst();
	do
	{
		barType.GetItemContent(0, CADOOperation::ADO_TYPE_STRING, &str);
		pCom->AddString(str);
		barType.MoveNext();
	}
	while(!barType.IsLastRow());
	barType.CloseRecorset();
	pCom->SetCurSel(0);

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CBargainDlg::OnOpen() 
{
	// TODO: Add your command handler code here
	CFileDialog fileDlg(TRUE, ".txt", 
		NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
		"文本文件 (*.txt)|*.txt||", this);
	if(IDOK != fileDlg.DoModal())
		return ;
	CString fileName = fileDlg.GetPathName();

	CFile file(fileName, CFile::modeRead);
	DWORD fileLen;
	char *buffer;
	fileLen = file.GetLength() + 1;
	if(fileLen < 0)
	{
		MessageBox("无效的文件!", "错误", MB_ICONWARNING);
		return ;
	}
	if(NULL == (buffer = new char[fileLen]))
	{
		MessageBox("没有可用的内存!", "致命错误", MB_ICONERROR);
		exit(0);
		return ;
	}
	memset(buffer, 0, fileLen);
	file.Read(buffer, fileLen);
	CString str;
	str.Format("%s", buffer);
	SetDlgItemText(IDC_EDIT5, str);
	delete buffer;
}

void CBargainDlg::OnLoadOut() 
{
	// TODO: Add your command handler code here
	CLoadInTempDlg dlg;
	CString str, type, name;

	GetDlgItemText(IDC_COMBO1, str);
	dlg.SetTemplateType(str);
	if(IDOK != dlg.DoModal())
		return ;
	name = dlg.GetTemplateName();
	type = dlg.GetTemplateType();
	if(SaveTemplate(type, name))
		MessageBox("保存成功!");
}

void CBargainDlg::OnLoadIn() 
{
	// TODO: Add your command handler code here
	CTemLoadDlg dlg;
	CADOOperation temp;
	CString type, name, sql, str;
	if(IDOK != dlg.DoModal())
		return ;
	type = dlg.GetTemplateType();
	name = dlg.GetTemplateName();
	sql.Format("select template_item from tb_bargain_template \
		where template_type = '%s' and template_name = '%s'", type, name);
	temp.OpenRecordset(sql);
	if(temp.IsLastRow())
	{
		MessageBox("没有合适的模板!");
		temp.CloseRecorset();
		return ;
	}
	
	temp.GetItemContent("template_item", CADOOperation::ADO_TYPE_TEXT, &str);
	temp.CloseRecorset();
	SetDlgItemText(IDC_EDIT5, str);
	SetDlgItemText(IDC_COMBO1, type);
} 

BOOL CBargainDlg::SaveTemplate(CString type, CString name)
{

	CADOOperation tmp;
	CString str;
	BOOL ret;
	tmp.OpenTable("tb_bargain_template");
	tmp.AddNew();
	ret = tmp.SetItemContent("template_type", CADOOperation::ADO_TYPE_STRING, &type);
	if(!ret)
	{
		tmp.CloseTable();
		return FALSE;
	}
	ret = tmp.SetItemContent("template_name", CADOOperation::ADO_TYPE_STRING, &name);
	if(!ret)
	{
		tmp.CloseTable();
		return FALSE;
	}
	GetDlgItemText(IDC_EDIT5, str);
	ret = tmp.SetItemContent("template_item", CADOOperation::ADO_TYPE_TEXT, &str);
	if(!ret)
	{
		tmp.CloseTable();
		return FALSE;
	}
	tmp.UpdateData();
	tmp.CloseTable();
	return TRUE;
}

void CBargainDlg::SetEdiable(BOOL editable)
{
	m_IsEditable = editable;
}

void CBargainDlg::DisableBargain()
{
	GetDlgItem(IDC_EDIT1)->EnableWindow(FALSE);
	GetDlgItem(IDC_COMBO1)->EnableWindow(FALSE);
	GetDlgItem(IDC_COMBO2)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT3)->EnableWindow(FALSE);

	((CEdit*)GetDlgItem(IDC_EDIT5))->SetReadOnly(TRUE);
	GetDlgItem(IDC_BARGAIN_RESET)->EnableWindow(FALSE);
//	GetDlgItem(IDC_LOAD_BARGAIN_ITEM)->EnableWindow(TRUE);
	GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(FALSE);
	SetDlgItemText(IDC_BARGAIN_SAVE, "终止");


	if(!m_Available)
		GetDlgItem(IDC_BARGAIN_SAVE)->EnableWindow(FALSE);
	
}

BOOL CBargainDlg::ShowBargain(CString name)
{
	CADOOperation barg;
	CString sql, str, id;
	DWORD life, state;
	SYSTEMTIME sysTime = {0};
	CTime cur;

	sql.Format("select * from tb_bargain where bargain_employee = '%s'", name);
	barg.OpenRecordset(sql);
	barg.GetItemContent("bargain_id", CADOOperation::ADO_TYPE_STRING, &id);
	SetDlgItemText(IDC_EDIT1, id);

	barg.GetItemContent("bargain_state", CADOOperation::ADO_TYPE_INT, &state);
	((CComboBox*)GetDlgItem(IDC_COMBO2))->SetCurSel(state);

	barg.GetItemContent("bargain_type", CADOOperation::ADO_TYPE_STRING, &str);
	SetDlgItemText(IDC_COMBO1, str);
	barg.GetItemContent("bargain_item", CADOOperation::ADO_TYPE_STRING, &str);
	SetDlgItemText(IDC_EDIT5, str);
	barg.GetItemContent("bargain_useful_life", CADOOperation::ADO_TYPE_INT, &life);
	SetDlgItemInt(IDC_EDIT3, life);
	barg.GetItemContent("bargain_timeofbeceff", CADOOperation::ADO_TYPE_DATE, &sysTime);
	((CDateTimeCtrl*)GetDlgItem(IDC_DATETIMEPICKER1))->SetTime(&sysTime);
	cur.GetCurrentTime();
	cur = sysTime;
	barg.CloseRecorset();
	if(state != 0)
		m_Available = FALSE;

	return TRUE;
}

BOOL CBargainDlg::InvalidateBargain(CString num, DWORD state)
{

	CADOOperation bar;
	CString sql;
	BOOL ret;

	sql.Format("select bargain_state from tb_bargain where bargain_id = '%s'", num);
	ret = bar.OpenRecordset(sql);
	if(!ret)
	{
		bar.CloseRecorset();
		return FALSE;
	}
	ret = bar.SetItemContent("bargain_state", CADOOperation::ADO_TYPE_INT, &state);
	if(!ret)
	{
		bar.CloseRecorset();
		return FALSE;
	}
	ret = bar.UpdateData();
	if(!ret)
	{
		bar.CloseRecorset();
		return FALSE;
	}
	bar.CloseRecorset();

	return TRUE;
}

BOOL CBargainDlg::UpdataState()
{

	CADOOperation state;
	BOOL ret;
	ret = state.OpenRecordset("update tb_bargain set \
													bargain_state = 2 where getdate() > \
													bargain_timeofbeceff + bargain_useful_life * 365");
	state.CloseRecorset();

	return ret ;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -