/*******************************************************************************
* Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
* 类的信息:
* 1.程序名称:F_HR_0901.cs
* 2.功能描述:员工报餐
* 编辑履历:
* 作者 日期 版本 修改内容
* 张国印 2014/10/6 1.00 新建
*******************************************************************************/
using System;
using System.Data;
using System.Windows.Forms;
using Dongke.IBOSS.PRD.Basics.BaseControls;
using Dongke.IBOSS.PRD.Basics.BaseResources;
using Dongke.IBOSS.PRD.Basics.DockPanel;
using Dongke.IBOSS.PRD.Basics.Library;
using Dongke.IBOSS.PRD.Client.CommonModule;
using Dongke.IBOSS.PRD.Client.DataModels;
using Dongke.IBOSS.PRD.WCF.DataModels;
using Dongke.IBOSS.PRD.WCF.Proxys;
using Dongke.IBOSS.PRD.WCF.Proxys.CommonModuleService;
using Dongke.IBOSS.PRD.WCF.Proxys.HRModuleService;
namespace Dongke.IBOSS.PRD.Client.HRModule
{
///
/// 员工报餐
///
public partial class F_HR_0901 : DockPanelBase
{
#region 成员变量
// 单例模式
private static F_HR_0901 _instance;
// 最后选择行
//private int _selecedRow;
//Grid当前选中的行
private int _selectedRowIndex;
// 查询条件实体
private HR_CMN_StaffEntity _staffEntity = new HR_CMN_StaffEntity();
#endregion
#region 构造函数
///
/// 构造函数
///
public F_HR_0901()
{
InitializeComponent();
this.SetFromTitleInfo();
}
#endregion
#region 单例模式
///
/// 单例模式,防止重复创建窗体
///
public static F_HR_0901 Instance
{
get
{
if (_instance == null)
{
_instance = new F_HR_0901();
}
return _instance;
}
}
#endregion
#region 事件
///
/// 窗体加载事件
///
///
///
private void F_HR_0901_Load(object sender, EventArgs e)
{
try
{
this.dkStaffName.WhereCondition = "(StaffStatus = 1 Or StaffStatus = 2) AND ValueFlag = 1";
FormPermissionManager.FormPermissionControl(this.Name, this,
LogInUserInfo.CurrentUser.CurrentUserEntity.UserRightData, LogInUserInfo.CurrentUser.CurrentUserEntity.FunctionData);
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 窗体关闭事件
///
///
///
private void F_HR_0901_FormClosed(object sender, FormClosedEventArgs e)
{
_instance = null;
}
///
/// 选项改变事件
///
///
///
private void chkMealDate_CheckedChanged(object sender, EventArgs e)
{
if (this.chkMealDate.Checked)
{
this.dtpMealDateBegin.Enabled = true;
this.dtpMealDateEnd.Enabled = true;
}
else
{
this.dtpMealDateBegin.Enabled = false;
this.dtpMealDateEnd.Enabled = false;
}
}
///
/// 行获取焦点事件
///
///
///
private void dgvStaffDailyMeal_CellEnter(object sender, DataGridViewCellEventArgs e)
{
try
{
if (this.dgvStaffDailyMeal.CurrentCell != null)
{
// 记录最后选择行
this._selectedRowIndex = this.dgvStaffDailyMeal.CurrentCell.RowIndex;
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 单元格鼠标双击事件
///
///
///
private void dgvStaffDailyMeal_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{
if (Constant.INT_IS_NEGATIE_ONE < e.RowIndex && Constant.INT_IS_NEGATIE_ONE < e.ColumnIndex
&& this.tsbtnDownloadTemplate.Enabled && this.tsbtnDownloadTemplate.Visible)
{
this.tsbtnEdit_Click(sender, e);
}
}
///
/// 添加按钮
///
///
///
private void tsbtnAdd_Click(object sender, EventArgs e)
{
try
{
F_HR_0902 frmHR0902 = new F_HR_0902(Constant.FormMode.Add);
if (frmHR0902.ShowDialog() == DialogResult.OK)
{
SearchDailyMealEntity searchDailyMealEntity = SetSearchDailyMealEntity();
DataSet dsResultStaff = (DataSet)DoAsync(new AsyncMethod(() =>
{
return HRModuleProxy.Service.SearcStaffDailyMealInfo(searchDailyMealEntity);
}));
if (dsResultStaff != null && dsResultStaff.Tables.Count > Constant.INT_IS_ZERO
&& dsResultStaff.Tables[0].Rows.Count > Constant.INT_IS_ZERO)
{
this.dgvStaffDailyMeal.DataSource = null;
this.dgvStaffDailyMeal.DataSource = dsResultStaff.Tables[0];
this.dgvStaffDailyMeal.ReadOnly = true;
}
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 编辑用餐按钮
///
///
///
private void tsbtnEdit_Click(object sender, EventArgs e)
{
try
{
F_HR_0902 frmHR0902 = new F_HR_0902(Constant.FormMode.LimitEdit);
if (frmHR0902.ShowDialog() == DialogResult.OK)
{
SearchDailyMealEntity searchDailyMealEntity = SetSearchDailyMealEntity();
DataSet dsResultStaff = (DataSet)DoAsync(new AsyncMethod(() =>
{
return HRModuleProxy.Service.SearcStaffDailyMealInfo(searchDailyMealEntity);
}));
if (dsResultStaff != null && dsResultStaff.Tables.Count > Constant.INT_IS_ZERO
&& dsResultStaff.Tables[0].Rows.Count > Constant.INT_IS_ZERO)
{
this.dgvStaffDailyMeal.DataSource = null;
this.dgvStaffDailyMeal.DataSource = dsResultStaff.Tables[0];
this.dgvStaffDailyMeal.ReadOnly = true;
}
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 更多条件按钮
///
///
///
private void tsbtnMoreCondition_Click(object sender, EventArgs e)
{
HR_CMN_001 frmCMN001 = new HR_CMN_001();
frmCMN001.StaffEntity = this._staffEntity;
if (frmCMN001.ShowDialog() == DialogResult.OK)
{
this.txtOtherWhere.Text = frmCMN001.StaffEntity.GetSqlDispText();
this._staffEntity = frmCMN001.StaffEntity;
}
}
///
/// 下载模板按钮
///
///
///
private void tsbtnDownloadTemplate_Click(object sender, EventArgs e)
{
try
{
TempletFileEntity resultTemplet = (TempletFileEntity)DoAsync(new AsyncMethod(() =>
{
return CommonModuleProxy.Service.GetTempletFileContentByUrl(Constant.HR_STAFF_DAILYMEAL_TEMPLET);
}));
if (string.IsNullOrEmpty(resultTemplet.FileName))
{
// 提示未查找到数据
MessageBox.Show(Messages.MSG_CMN_W021, this.Text,
MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
this.sfDialogTemplet.FileName = resultTemplet.FileName;
this.sfDialogTemplet.Filter = "压缩文件(*.rar)|*.rar";
if (this.sfDialogTemplet.ShowDialog() == DialogResult.OK)
{
string localFilePath = this.sfDialogTemplet.FileName.ToString(); //获得文件路径
System.IO.File.WriteAllBytes(localFilePath, resultTemplet.FileContent);
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 自动适应列宽
///
///
///
private void tsbtnAdaptive_Click(object sender, EventArgs e)
{
this.dgvStaffDailyMeal.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
}
///
/// 关闭按钮事件
///
///
///
private void tsbtnClose_Click(object sender, EventArgs e)
{
this.Close();
}
///
/// 查询按钮事件
///
///
///
private void btnSearch_Click(object sender, EventArgs e)
{
try
{
// 记录当前选中行
int selectRowIndex = this._selectedRowIndex;
SearchDailyMealEntity searchDailyMealEntity = SetSearchDailyMealEntity();
DataSet dsResultStaff = (DataSet)DoAsync(new AsyncMethod(() =>
{
return HRModuleProxy.Service.SearcStaffDailyMealInfo(searchDailyMealEntity);
}));
if (dsResultStaff != null)
{
base.DataSource = dsResultStaff;
if (this.DataSource != null && this.DataSource.Tables.Count > Constant.INT_IS_ZERO)
{
this.dgvStaffDailyMeal.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.Information);
}
else
{
#region 选择原有行
if (selectRowIndex >= Constant.INT_IS_ZERO)
{
if (selectRowIndex >= dsResultStaff.Tables[0].Rows.Count)
{
this.dgvStaffDailyMeal.Rows[this.dgvStaffDailyMeal.Rows.Count - 1].Selected = true;
this.dgvStaffDailyMeal.CurrentCell = this.dgvStaffDailyMeal.Rows[this.dgvStaffDailyMeal.Rows.Count - 1].Cells["StaffName"];
}
else
{
this.dgvStaffDailyMeal.Rows[selectRowIndex].Selected = true;
this.dgvStaffDailyMeal.CurrentCell = this.dgvStaffDailyMeal.Rows[selectRowIndex].Cells["StaffName"];
}
}
#endregion
}
}
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 清空条件
///
///
///
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;
this.chkMealDate.Checked = false;
this.txtOtherWhere.Text = string.Empty;
this.chkOrderBreakfast.ClearItemCheck();
this.chkOrderLunch.ClearItemCheck();
this.chkOrderDinner.ClearItemCheck();
this.chkMealBreakfast.ClearItemCheck();
this.chkMealLunch.ClearItemCheck();
this.chkMealDinner.ClearItemCheck();
this._staffEntity.ClearEntityValue();
}
#endregion
#region 私有方法
///
/// 设置窗体按钮的文本信息
///
private void SetFromTitleInfo()
{
this.Text = FormTitles.F_HR_0901;
this.tsbtnAdd.Text = ButtonText.TSBTN_ADD;
this.tsbtnDownloadTemplate.Text = ButtonText.TSBTN_DOWNLOADTEMPLATE;
this.tsbtnEdit.Text = ButtonText.TSBTN_EDIT;
this.tsbtnMoreCondition.Text = ButtonText.TSBTN_MORECONDITION;
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.gbxCondition.Text = Constant.LABEL_QUERY_CONDITIONS;
}
///
/// 根据查询条件 形成查询实体
///
///
public SearchDailyMealEntity SetSearchDailyMealEntity()
{
SearchDailyMealEntity searchDailyMealEntity = new SearchDailyMealEntity();
DataConvert.Convert(this._staffEntity, searchDailyMealEntity);
if (this.dkStaffName.UserID != null)
{
searchDailyMealEntity.StaffID = this.dkStaffName.UserID;
}
if (this.chkMealDate.Checked)
{
searchDailyMealEntity.StartMealDate = new DateTime(this.dtpMealDateBegin.Value.Year, this.dtpMealDateBegin.Value.Month, this.dtpMealDateBegin.Value.Day);
searchDailyMealEntity.EndMealDate = new DateTime(this.dtpMealDateBegin.Value.Year, this.dtpMealDateBegin.Value.Month, this.dtpMealDateBegin.Value.Day + 1);
}
object[] orderBreakfasts = this.chkOrderBreakfast.SelectedValues;
if (orderBreakfasts.Length == Constant.INT_IS_ONE)
{
searchDailyMealEntity.OrderBreakfast = orderBreakfasts[Constant.INT_IS_ZERO].ToString();
}
object[] orderLunchs = this.chkOrderLunch.SelectedValues;
if (orderLunchs.Length == Constant.INT_IS_ONE)
{
searchDailyMealEntity.OrderLunch = orderLunchs[Constant.INT_IS_ZERO].ToString();
}
object[] orderDinners = this.chkOrderDinner.SelectedValues;
if (orderDinners.Length == Constant.INT_IS_ONE)
{
searchDailyMealEntity.OrderDinner = orderDinners[Constant.INT_IS_ZERO].ToString();
}
object[] mealBreakfasts = this.chkMealBreakfast.SelectedValues;
if (mealBreakfasts.Length == Constant.INT_IS_ONE)
{
searchDailyMealEntity.MealBreakfast = mealBreakfasts[Constant.INT_IS_ZERO].ToString();
}
object[] mealLunchs = this.chkMealLunch.SelectedValues;
if (mealLunchs.Length == Constant.INT_IS_ONE)
{
searchDailyMealEntity.MealLunch = mealLunchs[Constant.INT_IS_ZERO].ToString();
}
object[] mealDinners = this.chkMealDinner.SelectedValues;
if (mealDinners.Length == Constant.INT_IS_ONE)
{
searchDailyMealEntity.MealDinner = mealDinners[Constant.INT_IS_ZERO].ToString();
}
return searchDailyMealEntity;
}
#endregion
}
}