/*******************************************************************************
* Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
* 类的信息:
* 1.程序名称:F_TAT_0502.cs
* 2.功能描述:新建/编辑/复制缺陷扣罚信息
* 编辑履历:
* 作者 日期 版本 修改内容
* 宋扬 2014/12/11 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.Client.CommonModule;
using Dongke.IBOSS.PRD.WCF.DataModels;
using Dongke.IBOSS.PRD.WCF.Proxys;
using Dongke.IBOSS.PRD.WCF.Proxys.TATModuleService;
namespace Dongke.IBOSS.PRD.Client.TATModule
{
public partial class F_TAT_0502 : FormBase
{
#region 成员变量
// 窗体模式ID
private Constant.FormMode _formType;
// 操作实体ID
private int? _entityId;
// 操作实体信息
private ProgressEntity _progressEntity = new ProgressEntity();
#endregion
#region 构造函数
///
/// 窗体构造
///
/// 窗体打开模式
/// 操作实体ID
public F_TAT_0502(Constant.FormMode formType, int entityId)
{
InitializeComponent();
_formType = formType;
_entityId = entityId;
// 窗体显示的Title
if (this._formType == Constant.FormMode.Add)
{
this.Text = FormTitles.F_TAT_0502_ADD;
}
else if (this._formType == Constant.FormMode.Edit)
{
this.Text = FormTitles.F_TAT_0502_EDIT;
}
else if (this._formType == Constant.FormMode.CopyAndAdd)
{
this.Text = FormTitles.F_TAT_0502_COPY;
}
else if (this._formType == Constant.FormMode.Display)
{
this.Text = FormTitles.F_TAT_0502_AUDIT;
}
}
#endregion
#region 事件处理
///
/// 窗体加载
///
///
///
private void F_TAT_0502_Load(object sender, EventArgs e)
{
try
{
//如果是修改,要绑定选中的信息
if (this._formType == Constant.FormMode.Edit)
{
BindPage();
}
//如果是新建,选项默认值设定
else if (this._formType == Constant.FormMode.Add || this._formType == Constant.FormMode.CopyAndAdd)
{
this.cbCeremonial.Checked = true;
}
//如果是审核,绑定值后,所有控件不可用,保存按钮变为明细按钮,并且审批通过与不通过按钮变为可见
else
{
//绑定页面实体成员变量
BindPage();
//绑定页面实体成员变量
this.txtRemarks.Enabled = false;
this.txtProgressName.Enabled = false;
this.dtpStartTime.Enabled = false;
this.cbCeremonial.Enabled = false;
this.cbTrial.Enabled = false;
this.btnSubmit.Text = Constant.BUTTON_TEXT_DETAIL;
this.btnPass.Visible = true;
this.btnReturn.Visible = true;
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 提交操作按钮事件
///
///
///
private void btnSubmit_Click(object sender, EventArgs e)
{
try
{
if (this._formType != Constant.FormMode.Display)
{
//为实体绑定属性
if (this.BindEntity())
{
return;
}
//进行添加操作
ServiceResultEntity srEntity = (ServiceResultEntity)DoAsync(() =>
{
return EntityToServer();
});
//服务实体共通处理
ServiceResultEntityManager.HandleServiceResultEntity(srEntity, this.Text);
if (srEntity.Status == Constant.ServiceResultStatus.Success)
{
this.DialogResult = DialogResult.OK;
}
}
else
{
//模式化开启明细窗体
F_TAT_0503 frmTAT0503 = new F_TAT_0503(Constant.FormMode.Display, Convert.ToInt32(this._entityId));
DialogResult dialogResult = frmTAT0503.ShowDialog();
}
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 窗体关闭
///
///
///
private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
}
///
/// 窗体释放
///
///
///
private void F_TAT_0502_FormClosed(object sender, FormClosedEventArgs e)
{
this.Dispose();
}
///
/// 审批通过
///
///
///
private void btnPass_Click(object sender, EventArgs e)
{
//进行审核操作
this._progressEntity.AuditStatus = Convert.ToInt32(Constant.AuditStatus.Agree);
ServiceResultEntity srEntity = (ServiceResultEntity)DoAsync(() =>
{
return EntityToServer();
});
//服务实体共通处理
ServiceResultEntityManager.HandleServiceResultEntity(srEntity, this.Text);
if (srEntity.Status == Constant.ServiceResultStatus.Success)
{
this.DialogResult = DialogResult.OK;
}
}
///
/// 审批驳回
///
///
///
private void btnReturn_Click(object sender, EventArgs e)
{
//进行审核操作
this._progressEntity.AuditStatus = Convert.ToInt32(Constant.AuditStatus.Disagree);
ServiceResultEntity srEntity = (ServiceResultEntity)DoAsync(() =>
{
return EntityToServer();
});
//服务实体共通处理
ServiceResultEntityManager.HandleServiceResultEntity(srEntity, this.Text);
if (srEntity.Status == Constant.ServiceResultStatus.Success)
{
this.DialogResult = DialogResult.OK;
}
}
#endregion
#region 私有方法/函数
///
/// 绑定需要操作的实体信息
///
private void BindPage()
{
if (this._entityId != Constant.INT_IS_ZERO && this._entityId != null)
{
this._progressEntity.ProgressID = this._entityId;
ServiceResultEntity srQuality = (ServiceResultEntity)DoAsync(() =>
{
return TATModuleProxy.Service.GetProgress(_progressEntity);
});
if (srQuality.Data != null && srQuality.Data.Tables.Count != Constant.INT_IS_ZERO
&& srQuality.Data.Tables[Constant.INT_IS_ZERO].Rows.Count != Constant.INT_IS_ZERO)
{
DataRow drEntityRow = srQuality.Data.Tables[Constant.INT_IS_ZERO].Rows[Constant.INT_IS_ZERO];
this.txtProgressName.Text = drEntityRow["ProgressName"].ToString();
this.txtRemarks.Text = drEntityRow["Remarks"].ToString();
int SalaryType = Convert.ToInt32(drEntityRow["SalaryType"]);
if (SalaryType == Constant.INT_IS_ONE)
{
this.cbCeremonial.Checked = true;
}
else
{
this.cbTrial.Checked = true;
}
this._progressEntity.SalaryType = SalaryType;
this.dtpStartTime.Text = drEntityRow["BeginAccountMonth"].ToString();
this._progressEntity.BeginAccountMonthStart = Convert.ToDateTime(drEntityRow["BeginAccountMonth"].ToString());
//将时间戳给到要修改的实体中
this._progressEntity.OPTimeStamp = Convert.ToDateTime(drEntityRow["OPTimeStamp"]);
}
}
}
///
/// 为实体绑定页面属性
///
private bool BindEntity()
{
if (string.IsNullOrEmpty(this.txtProgressName.Text.Trim()))
{
return true;
}
this._progressEntity.ProgressName = this.txtProgressName.Text.Trim();
this._progressEntity.Remarks = this.txtRemarks.Text.Trim();
this._progressEntity.BeginAccountMonthStart = Convert.ToDateTime(this.dtpStartTime.Value.ToString("yyyy-MM"));
if (this.cbCeremonial.Checked)
{
this._progressEntity.SalaryType = Constant.INT_IS_ONE;
}
else
{
this._progressEntity.SalaryType = Constant.INT_IS_ZERO;
}
this._progressEntity.AuditStatus = Constant.INT_IS_ZERO;
return false;
}
///
/// 与服务交互操作
///
///
private ServiceResultEntity EntityToServer()
{
if (this._formType == Constant.FormMode.Add)
{
return TATModuleProxy.Service.AddProgress(this._progressEntity);
}
else if (this._formType == Constant.FormMode.Edit)
{
return TATModuleProxy.Service.UpdateProgress(this._progressEntity);
}
else if (_formType == Constant.FormMode.CopyAndAdd)
{
this._progressEntity.CopyId = Convert.ToInt32(this._entityId);
return TATModuleProxy.Service.AddProgress(this._progressEntity);
}
else if (_formType == Constant.FormMode.Display)
{
return TATModuleProxy.Service.AuditProgress(this._progressEntity);
}
return null;
}
#endregion
}
}