/*******************************************************************************
* Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
* 类的信息:
* 1.程序名称:F_HR_1002.cs
* 2.功能描述:员工考勤编辑
* 编辑履历:
* 作者 日期 版本 修改内容
* 任海 2014/09/24 1.00 新建
*******************************************************************************/
using System;
using System.Data;
using System.Windows.Forms;
using Dongke.IBOSS.PRD.Basics.BaseResources;
using Dongke.IBOSS.PRD.Basics.DockPanel;
using Dongke.IBOSS.PRD.Client.CommonModule;
using Dongke.IBOSS.PRD.Client.DataModels;
using Dongke.IBOSS.PRD.WCF.Proxys;
using Dongke.IBOSS.PRD.WCF.Proxys.HRModuleService;
using Dongke.IBOSS.PRD.Client.Controls.FormCommon;
using Dongke.IBOSS.PRD.Basics.BaseControls;
using Dongke.IBOSS.PRD.Basics.Library;
using Dongke.IBOSS.PRD.WCF.DataModels;
using Dongke.IBOSS.PRD.WCF.DataModels.HRModule;
namespace Dongke.IBOSS.PRD.Client.HRModule
{
///
/// 员工考勤编辑
///
public partial class F_HR_1002 : FormBase
{
#region 成员变量
// 单例模式
private static F_HR_1002 _instance;
//// 最后选择行
//private int _selecedRow;
//// 员工ID
//private int _staffID;
// Grid当前选中的行
private int _selectedRowIndex;
// 用户编辑的ID集合
int[] _staffIDList;
// 查询条件实体
private HR_CMN_StaffEntity _staffEntity = new HR_CMN_StaffEntity();
// 格式刷是否开启
private bool _isBrushIsOpen = false;
// 记录考勤卡号
private string _cardNumber;
// 记录出勤状态
private string _attendanceStatus;
// 记录缺勤原因
private string _absenceReason;
// 记录迟到次数
private string _tardinessTimes;
// 记录备注
private string _remarks;
// 列索引
private int _columnIndex = -1;
#endregion
#region 构造函数
public F_HR_1002()
{
InitializeComponent();
this.Text = FormTitles.F_HR_1002;
this.tsbtnImport.Text = ButtonText.TSBTN_IMPORT;
this.tsbtnBrush.Text = ButtonText.TSBTN_BRUSH;
this.tsbtnAdaptive.Text = ButtonText.TSBTN_ADAPTIVE;
this.tsbtnClose.Text = ButtonText.TSBTN_CLOSE;
this.btnSearch.Text = ButtonText.BTN_SEARCH;
this.btnClearCondition.Text = ButtonText.BTN_CLEARCONDITION;
this.btnSave.Text = ButtonText.BTN_SAVE;
this.btnCancel.Text = ButtonText.BTN_CANCEL;
this.gbxCondition.Text = Constant.LABEL_QUERY_CONDITIONS;
}
#endregion
#region 单例模式
///
/// 单例模式,防止重复创建窗体
///
public static F_HR_1002 Instance
{
get
{
if (_instance == null)
{
_instance = new F_HR_1002();
}
return _instance;
}
}
#endregion
#region 事件
///
/// 窗体加载事件
///
///
///
private void F_HR_1002_Load(object sender, EventArgs e)
{
try
{
#region 绑定数据源
this.dkStaffName.WhereCondition = "(StaffStatus = 1 Or StaffStatus = 2) AND ValueFlag = 1";
//dtpmonth
this.dtpmonth.Value = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
//获取出勤状态数据源
this.AttendanceStatusName.DisplayMember = "AttendanceStatusName";
this.AttendanceStatusName.ValueMember = "AttendanceStatus";
this.AttendanceStatusName.DataSource = this.GetAttendanceStatusInfo();
//获取缺勤原因数据源
this.AbsenceReasonName.ValueMember = "AbsenceReason";
this.AbsenceReasonName.DisplayMember = "AbsenceReasonName";
this.AbsenceReasonName.DataSource = this.GetAbsenceReasonInfo();
//获取迟到早退次数数据源
this.TardinessTimes.ValueMember = "TardinessTimes";
this.TardinessTimes.DisplayMember = "TardinessTimesName";
this.TardinessTimes.DataSource = this.GetTardinessTimesInfo();
FormPermissionManager.FormPermissionControl(this.Name, this,
LogInUserInfo.CurrentUser.CurrentUserEntity.UserRightData, LogInUserInfo.CurrentUser.CurrentUserEntity.FunctionData);
this.dgvStaffAttendance.SelectionMode = DataGridViewSelectionMode.RowHeaderSelect;
this.btnSave.Enabled = false;
#endregion
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 导入按钮
///
///
///
private void tsbtnImport_Click(object sender, EventArgs e)
{
try
{
this.oFileDialog.Filter = "Excel文件(*.xlsx)|*.xlsx";
this.oFileDialog.FileName = string.Empty;
if (this.oFileDialog.ShowDialog() == DialogResult.OK)
{
DataTable dtStaffMeal = ExcelLayer.GetDataTable(this.oFileDialog.FileName, 1);
#region 对数据进行验证
if (dtStaffMeal == null && dtStaffMeal.Rows.Count <= 0)
{
// 提示信息
MessageBox.Show(string.Format(Messages.MSG_CMN_W007, "数据表中没有数据!"),
this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
#endregion
DataSet dsResultStaff = (DataSet)DoAsync(new BaseAsyncMethod(() =>
{
return HRModuleProxy.Service.GetStaffAttendanceInfoForExcel(dtStaffMeal);
}));
if (dsResultStaff != null)
{
base.DataSource = dsResultStaff;
if (this.DataSource != null && this.DataSource.Tables.Count > Constant.INT_IS_ZERO)
{
this.dgvStaffAttendance.DataSource = this.DataSource.Tables[0];
if (this.DataSource.Tables[0].Rows.Count <= Constant.INT_IS_ZERO)
{
// 提示未查找到数据
MessageBox.Show(Messages.MSG_CMN_I002, this.Text,
MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
}
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 数据刷
///
///
///
private void tsbtnBrush_Click(object sender, EventArgs e)
{
try
{
if (this.dgvStaffAttendance.CurrentCell == null
|| this.dgvStaffAttendance.Rows.Count < Constant.INT_IS_ONE)
{
return;
}
DataGridViewCell currentCell = this.dgvStaffAttendance.CurrentCell;
if ("CardNumber".Equals(dgvStaffAttendance.Columns[currentCell.ColumnIndex].Name))
{
if (!_isBrushIsOpen)
{
this.tsbtnBrush.Checked = true;
this._isBrushIsOpen = true;
this.dgvStaffAttendance.Cursor = Cursors.Hand;
this.dgvStaffAttendance.MultiSelect = true;
this._cardNumber = dgvStaffAttendance.CurrentRow.Cells[currentCell.ColumnIndex].Value + "";
}
else
{
this.dgvStaffAttendance.Cursor = Cursors.Default;
this.dgvStaffAttendance.MultiSelect = false;
this.tsbtnBrush.Checked = false;
this._isBrushIsOpen = false;
}
}
else if ("AttendanceStatusName".Equals(dgvStaffAttendance.Columns[currentCell.ColumnIndex].Name))
{
if (!_isBrushIsOpen)
{
this.tsbtnBrush.Checked = true;
this._isBrushIsOpen = true;
this.dgvStaffAttendance.Cursor = Cursors.Hand;
this.dgvStaffAttendance.MultiSelect = true;
this._attendanceStatus = dgvStaffAttendance.CurrentRow.Cells[currentCell.ColumnIndex].Value + "";
}
else
{
this.dgvStaffAttendance.Cursor = Cursors.Default;
this.dgvStaffAttendance.MultiSelect = false;
this.tsbtnBrush.Checked = false;
this._isBrushIsOpen = false;
}
}
else if ("AbsenceReasonName".Equals(dgvStaffAttendance.Columns[currentCell.ColumnIndex].Name))
{
if (!_isBrushIsOpen)
{
this.tsbtnBrush.Checked = true;
this._isBrushIsOpen = true;
this.dgvStaffAttendance.Cursor = Cursors.Hand;
this.dgvStaffAttendance.MultiSelect = true;
this._absenceReason = dgvStaffAttendance.CurrentRow.Cells[currentCell.ColumnIndex].Value + "";
}
else
{
this.dgvStaffAttendance.Cursor = Cursors.Default;
this.dgvStaffAttendance.MultiSelect = false;
this.tsbtnBrush.Checked = false;
this._isBrushIsOpen = false;
}
}
else if ("TardinessTimes".Equals(dgvStaffAttendance.Columns[currentCell.ColumnIndex].Name))
{
if (!_isBrushIsOpen)
{
this.tsbtnBrush.Checked = true;
this._isBrushIsOpen = true;
this.dgvStaffAttendance.Cursor = Cursors.Hand;
this.dgvStaffAttendance.MultiSelect = true;
this._tardinessTimes = dgvStaffAttendance.CurrentRow.Cells[currentCell.ColumnIndex].Value + "";
}
else
{
this.dgvStaffAttendance.Cursor = Cursors.Default;
this.dgvStaffAttendance.MultiSelect = false;
this.tsbtnBrush.Checked = false;
this._isBrushIsOpen = false;
}
}
else if ("Remarks".Equals(dgvStaffAttendance.Columns[currentCell.ColumnIndex].Name))
{
if (!_isBrushIsOpen)
{
this.tsbtnBrush.Checked = true;
this._isBrushIsOpen = true;
this.dgvStaffAttendance.Cursor = Cursors.Hand;
this.dgvStaffAttendance.MultiSelect = true;
this._remarks = dgvStaffAttendance.CurrentRow.Cells[currentCell.ColumnIndex].Value + "";
}
else
{
this.dgvStaffAttendance.Cursor = Cursors.Default;
this.dgvStaffAttendance.MultiSelect = false;
this.tsbtnBrush.Checked = false;
this._isBrushIsOpen = false;
}
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 数据刷刷数据
///
///
///
private void dgvStaffAttendance_CellMouseMove(object sender, DataGridViewCellMouseEventArgs e)
{
try
{
if (this.dgvStaffAttendance.CurrentCell == null
|| this.dgvStaffAttendance.Rows.Count < Constant.INT_IS_ONE)
{
return;
}
DataGridViewCell currentCell = this.dgvStaffAttendance.CurrentCell;
if (_columnIndex != -Constant.INT_IS_ONE && _columnIndex != currentCell.ColumnIndex)
{
this.SetBrushNotEnable();
}
if ("CardNumber".Equals(dgvStaffAttendance.Columns[currentCell.ColumnIndex].Name))
{
if (_isBrushIsOpen)
{
dgvStaffAttendance.CurrentRow.Cells[currentCell.ColumnIndex].Value = _cardNumber;
}
this._columnIndex = currentCell.ColumnIndex;
}
else if ("AttendanceStatusName".Equals(dgvStaffAttendance.Columns[currentCell.ColumnIndex].Name))
{
if (_isBrushIsOpen && !dgvStaffAttendance.CurrentRow.Cells[currentCell.ColumnIndex].ReadOnly)
{
dgvStaffAttendance.CurrentRow.Cells[currentCell.ColumnIndex].Value = _attendanceStatus;
}
this._columnIndex = currentCell.ColumnIndex;
}
else if ("AbsenceReasonName".Equals(dgvStaffAttendance.Columns[currentCell.ColumnIndex].Name))
{
if (_isBrushIsOpen && !dgvStaffAttendance.CurrentRow.Cells[currentCell.ColumnIndex].ReadOnly)
{
dgvStaffAttendance.CurrentRow.Cells[currentCell.ColumnIndex].Value = _absenceReason;
}
this._columnIndex = currentCell.ColumnIndex;
}
else if ("TardinessTimes".Equals(dgvStaffAttendance.Columns[currentCell.ColumnIndex].Name))
{
if (_isBrushIsOpen && !dgvStaffAttendance.CurrentRow.Cells[currentCell.ColumnIndex].ReadOnly)
{
dgvStaffAttendance.CurrentRow.Cells[currentCell.ColumnIndex].Value = _tardinessTimes;
}
this._columnIndex = currentCell.ColumnIndex;
}
else if ("Remarks".Equals(dgvStaffAttendance.Columns[currentCell.ColumnIndex].Name))
{
if (_isBrushIsOpen && !dgvStaffAttendance.CurrentRow.Cells[currentCell.ColumnIndex].ReadOnly)
{
dgvStaffAttendance.CurrentRow.Cells[currentCell.ColumnIndex].Value = _remarks;
}
this._columnIndex = currentCell.ColumnIndex;
}
this.btnSave.Enabled = true;
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 窗体关闭事件
///
///
///
private void F_HR_1002_FormClosed(object sender, FormClosedEventArgs e)
{
_instance = null;
}
///
/// 关闭按钮事件
///
///
///
private void tsbtnClose_Click(object sender, EventArgs e)
{
this.Close();
}
///
/// 自动适应列宽
///
///
///
private void tsbtnAdaptive_Click(object sender, EventArgs e)
{
this.dgvStaffAttendance.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
}
///
/// 清空条件
///
///
///
private void btnClearCondition_Click(object sender, EventArgs e)
{
this.dkStaffName.UserID = null;
this.dkStaffName.UserCode = string.Empty;
this.dkStaffName.UserName = string.Empty;
this.dkStaffName.StaffEntity = null;
}
///
/// 查询按钮事件
///
///
///
private void btnSearch_Click(object sender, EventArgs e)
{
try
{
if (this.dkStaffName.StaffEntity.StaffCode == null)
{
MessageBox.Show(string.Format(Messages.MSG_CMN_W005, "员工名称"),
this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
this._staffIDList = null;
// 记录当前选中行
int selectRowIndex = this._selectedRowIndex;
SearchAttendanceEntity SearchAttendanceEntity = SetSearchAttendanceEntity();
//DataTable dtResultStaff = GetStaffAttendance();
DataSet dsResultStaff = (DataSet)DoAsync(new BaseAsyncMethod(() =>
{
return HRModuleProxy.Service.SearcStaffAttendanceForEdit(SearchAttendanceEntity);
}));
if (dsResultStaff != null)
{
base.DataSource = dsResultStaff;
if (this.DataSource != null && this.DataSource.Tables.Count > Constant.INT_IS_ZERO)
{
this.dgvStaffAttendance.DataSource = this.DataSource.Tables[0];
if (this.DataSource.Tables[0].Rows.Count <= Constant.INT_IS_ZERO)
{
// 提示未查找到数据
MessageBox.Show(Messages.MSG_CMN_I002, this.Text,
MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 保存按钮事件
///
///
///
private void btnSave_Click(object sender, EventArgs e)
{
try
{
DataGridViewRow row = dgvStaffAttendance.CurrentRow;
if (row.Cells["CardNumber"].Value == null
|| string.IsNullOrEmpty(row.Cells["CardNumber"].Value + string.Empty))
{
// 单元格的错误消息
MessageBox.Show(string.Format(Messages.MSG_CMN_W005, "考勤卡号"),
this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
this.btnSave.Enabled = false;
return;
}
// 保存
this.btnSave.Enabled = false;
this.btnCancel.Enabled = false;
DataTable dTable = (DataTable)this.dgvStaffAttendance.DataSource;
dTable.AcceptChanges();
HRResultEntity resultEntity = (HRResultEntity)DoAsync(new BaseAsyncMethod(() =>
{
return HRModuleProxy.Service.SaveStaffAttendanceInfo(dTable);
}));
this.btnSave.Enabled = true;
this.btnCancel.Enabled = true;
if (!string.IsNullOrEmpty(resultEntity.OperateLogInfo))
{
MessageBox.Show(resultEntity.OperateLogInfo,
this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
this.btnSave.Enabled = false;
}
else if (resultEntity.OperateStatus > Constant.INT_IS_ZERO)
{
// 保存成功提示信息
MessageBox.Show(string.Format(Messages.MSG_CMN_I001, "员工考勤", "保存"),
this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
this.btnSave.Enabled = false;
}
else
{
MessageBox.Show(string.Format(Messages.MSG_CMN_W001, "员工考勤", "保存"),
this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 关闭按钮事件
///
///
///
private void btnCancel_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
this.Close();
}
#endregion
#region 私有方法
///
/// 设置窗体按钮的文本信息
///
private void SetFromTitleInfo()
{
this.tsbtnImport.Text = ButtonText.TSBTN_IMPORT;
this.tsbtnBrush.Text = ButtonText.TSBTN_BRUSH;
this.tsbtnAdaptive.Text = ButtonText.TSBTN_ADAPTIVE;
this.tsbtnClose.Text = ButtonText.TSBTN_CLOSE;
this.btnSearch.Text = ButtonText.BTN_SEARCH;
this.btnClearCondition.Text = ButtonText.BTN_CLEARCONDITION;
this.btnSave.Text = ButtonText.BTN_SAVE;
this.btnCancel.Text = ButtonText.BTN_CANCEL;
this.gbxCondition.Text = Constant.LABEL_QUERY_CONDITIONS;
this.Text = FormTitles.F_HR_1002;
// 设置表格不自动创建列
this.dgvStaffAttendance.AutoGenerateColumns = false;
}
///
/// 根据查询条件 形成查询实体
///
///
public SearchAttendanceEntity SetSearchAttendanceEntity()
{
SearchAttendanceEntity searchAttendanceEntity = new SearchAttendanceEntity();
if (this.dkStaffName.UserID != null)
{
searchAttendanceEntity.StaffID = this.dkStaffName.UserID;
}
DateTime time = this.dtpmonth.Value;
searchAttendanceEntity.StartAttendanceDate = new DateTime(time.Year, time.Month, 1);
searchAttendanceEntity.EndAttendanceDate = new DateTime(time.Year, time.Month, DateTime.DaysInMonth(time.Year, time.Month));
return searchAttendanceEntity;
}
///
/// 工资结算标识数据源
///
///
private DataTable GetSettlementFlagInfo()
{
//1:已经结算 0:未结算
DataTable dtRAPType = new DataTable();
dtRAPType.Columns.Add("SettlementFlag");
dtRAPType.Columns.Add("SettlementFlagName");
DataRow newRowType = dtRAPType.NewRow();
newRowType = dtRAPType.NewRow();
newRowType["SettlementFlag"] = "0";
newRowType["SettlementFlagName"] = "未结算";
dtRAPType.Rows.Add(newRowType);
newRowType = dtRAPType.NewRow();
newRowType["SettlementFlag"] = "1";
newRowType["SettlementFlagName"] = "已经结算";
dtRAPType.Rows.Add(newRowType);
return dtRAPType;
}
///
/// 出勤状态数据源
///
///
private DataTable GetAttendanceStatusInfo()
{
DataTable dtAttendanceStatus = new DataTable();
dtAttendanceStatus.Columns.Add("AttendanceStatus");
dtAttendanceStatus.Columns.Add("AttendanceStatusName");
DataRow rowAttendanceStatus = dtAttendanceStatus.NewRow();
rowAttendanceStatus["AttendanceStatus"] = "1";
rowAttendanceStatus["AttendanceStatusName"] = "全天";
dtAttendanceStatus.Rows.Add(rowAttendanceStatus);
rowAttendanceStatus = dtAttendanceStatus.NewRow();
rowAttendanceStatus["AttendanceStatus"] = "2";
rowAttendanceStatus["AttendanceStatusName"] = "半天";
dtAttendanceStatus.Rows.Add(rowAttendanceStatus);
rowAttendanceStatus = dtAttendanceStatus.NewRow();
rowAttendanceStatus["AttendanceStatus"] = "3";
rowAttendanceStatus["AttendanceStatusName"] = "缺勤";
dtAttendanceStatus.Rows.Add(rowAttendanceStatus);
return dtAttendanceStatus;
}
///
/// 缺勤原因数据源
///
///
private DataTable GetAbsenceReasonInfo()
{
DataTable dtAbsenceReason = new DataTable();
dtAbsenceReason.Columns.Add("AbsenceReason");
dtAbsenceReason.Columns.Add("AbsenceReasonName");
DataRow rowAbsenceReason = dtAbsenceReason.NewRow();
rowAbsenceReason["AbsenceReason"] = "0";
rowAbsenceReason["AbsenceReasonName"] = "休息";
dtAbsenceReason.Rows.Add(rowAbsenceReason);
rowAbsenceReason = dtAbsenceReason.NewRow();
rowAbsenceReason["AbsenceReason"] = "1";
rowAbsenceReason["AbsenceReasonName"] = "病假";
dtAbsenceReason.Rows.Add(rowAbsenceReason);
rowAbsenceReason = dtAbsenceReason.NewRow();
rowAbsenceReason["AbsenceReason"] = "2";
rowAbsenceReason["AbsenceReasonName"] = "事假";
dtAbsenceReason.Rows.Add(rowAbsenceReason);
rowAbsenceReason = dtAbsenceReason.NewRow();
rowAbsenceReason["AbsenceReason"] = "3";
rowAbsenceReason["AbsenceReasonName"] = "旷工";
dtAbsenceReason.Rows.Add(rowAbsenceReason);
//缺勤原因可为空
rowAbsenceReason = dtAbsenceReason.NewRow();
rowAbsenceReason["AbsenceReason"] = "4";
rowAbsenceReason["AbsenceReasonName"] = "其它";
dtAbsenceReason.Rows.Add(rowAbsenceReason);
return dtAbsenceReason;
}
///
/// 迟到早退次数数据源
///
///
private DataTable GetTardinessTimesInfo()
{
DataTable dtTardinessTimes = new DataTable();
dtTardinessTimes.Columns.Add("TardinessTimes");
dtTardinessTimes.Columns.Add("TardinessTimesName");
DataRow rowTardinessTimes = dtTardinessTimes.NewRow();
rowTardinessTimes["TardinessTimes"] = "0";
rowTardinessTimes["TardinessTimesName"] = "0";
dtTardinessTimes.Rows.Add(rowTardinessTimes);
rowTardinessTimes = dtTardinessTimes.NewRow();
rowTardinessTimes["TardinessTimes"] = "1";
rowTardinessTimes["TardinessTimesName"] = "1";
dtTardinessTimes.Rows.Add(rowTardinessTimes);
rowTardinessTimes = dtTardinessTimes.NewRow();
rowTardinessTimes["TardinessTimes"] = "2";
rowTardinessTimes["TardinessTimesName"] = "2";
dtTardinessTimes.Rows.Add(rowTardinessTimes);
rowTardinessTimes = dtTardinessTimes.NewRow();
rowTardinessTimes["TardinessTimes"] = "3";
rowTardinessTimes["TardinessTimesName"] = "3";
dtTardinessTimes.Rows.Add(rowTardinessTimes);
rowTardinessTimes = dtTardinessTimes.NewRow();
rowTardinessTimes["TardinessTimes"] = "4";
rowTardinessTimes["TardinessTimesName"] = "4";
dtTardinessTimes.Rows.Add(rowTardinessTimes);
return dtTardinessTimes;
}
///
/// 获取员工考勤
///
///
private DataTable GetStaffAttendance()
{
SearchAttendanceEntity searchAttendanceEntity = SetSearchAttendanceEntity();
DataSet staffAttendance = (DataSet)DoAsync(new BaseAsyncMethod(() =>
{
return HRModuleProxy.Service.SearcStaffAttendance(searchAttendanceEntity);
}));
SearchStaffEntity searchStaff = new SearchStaffEntity();
if (this.dkStaffName.UserID != null)
{
searchStaff.StaffID = this.dkStaffName.UserID;
}
DataSet resultStaff = (DataSet)DoAsync(new BaseAsyncMethod(() =>
{
return HRModuleProxy.Service.SearchHrStaff(searchStaff);
}));
DateTime dtBegin = searchAttendanceEntity.StartAttendanceDate.Value;
DateTime dtEnd = searchAttendanceEntity.EndAttendanceDate.Value;
if (dtEnd >= DateTime.Now)
{
dtEnd = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
}
DataTable dtStaffAtt = staffAttendance.Tables[0].Clone();
for (DateTime dtItem = dtBegin; dtItem <= dtEnd; dtItem = dtItem.AddDays(1))
{
DataRow newRowAtt = dtStaffAtt.NewRow();
newRowAtt["StaffID"] = resultStaff.Tables[0].Rows[0]["StaffID"].ToString();
newRowAtt["StaffCode"] = resultStaff.Tables[0].Rows[0]["StaffCode"].ToString();
newRowAtt["StaffName"] = resultStaff.Tables[0].Rows[0]["StaffName"].ToString();
newRowAtt["IDCardNo"] = resultStaff.Tables[0].Rows[0]["IDCardNo"].ToString();
newRowAtt["AttendanceDate"] = dtItem;
newRowAtt["CardNumber"] = 1;
newRowAtt["AttendanceStatus"] = 1;
newRowAtt["AbsenceReason"] = 4;
newRowAtt["TardinessTimes"] = 0;
newRowAtt["SettlementFlag"] = "未结算";
if (staffAttendance != null && staffAttendance.Tables.Count > Constant.INT_IS_ZERO)
{
string strWhere = "StaffID = " + resultStaff.Tables[0].Rows[0]["StaffID"].ToString()
+ " And AttendanceDate = '" + dtItem + "'";
DataRow[] rowAttendances = staffAttendance.Tables[0].Select(strWhere);
if (rowAttendances != null & rowAttendances.Length > Constant.INT_IS_ZERO)
{
newRowAtt["CardNumber"] = rowAttendances[0]["CardNumber"].ToString();
newRowAtt["AttendanceStatus"] = rowAttendances[0]["AttendanceStatus"].ToString();
newRowAtt["AbsenceReason"] = rowAttendances[0]["AbsenceReason"].ToString();
newRowAtt["TardinessTimes"] = rowAttendances[0]["TardinessTimes"].ToString();
newRowAtt["SettlementFlag"] = rowAttendances[0]["SettlementFlag"].ToString() == "0" ? "未结算" : "已结算";
}
}
dtStaffAtt.Rows.Add(newRowAtt);
}
return dtStaffAtt;
}
///
/// 使格式刷不可用
///
private void SetBrushNotEnable()
{
this._isBrushIsOpen = false;
this.tsbtnBrush.Checked = false;
this.dgvStaffAttendance.Cursor = Cursors.Default;
this.dgvStaffAttendance.MultiSelect = false;
}
#endregion
}
}