/*******************************************************************************
* Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
* 类的信息:
* 1.程序名称:F_TAT_0103.cs
* 2.功能描述:新建/编辑/复制缺陷扣罚信息
* 编辑履历:
* 作者 日期 版本 修改内容
* 庄天威 2014/11/18 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_0103 : FormBase
{
#region 成员变量
// 窗体模式ID
private Constant.FormMode _formType;
// 操作实体ID
private int? _entityId;
// 操作实体信息
private DefectFineEntity _dfEntity = new DefectFineEntity();
#endregion
#region 构造函数
///
/// 窗体构造
///
/// 窗体打开模式
/// 操作实体ID
public F_TAT_0103(Constant.FormMode formType,int entityId)
{
InitializeComponent();
_formType = formType;
_entityId = entityId;
}
#endregion
#region 事件处理
///
/// 窗体加载
///
///
///
private void F_TAT_0103_Load(object sender, EventArgs e)
{
try
{
if (this._formType == Constant.FormMode.Add)
{
this.Text = FormTitles.F_TAT_0103_ADD;
}
else if (this._formType == Constant.FormMode.Edit)
{
this.Text = FormTitles.F_TAT_0103_EDIT;
}
else if (this._formType == Constant.FormMode.CopyAndAdd)
{
this.Text = FormTitles.F_TAT_0103_COPY;
}
else if (this._formType == Constant.FormMode.Display)
{
this.Text = FormTitles.F_TAT_0103_AUDIT;
}
//设定按钮的文本值
this.btnSubmit.Text = ButtonText.BTN_SAVE;
this.btnClose.Text = ButtonText.BTN_CANCEL;
this.btnPass.Text = Constant.BUTTON_TEXT_AUDITPASS;
this.btnReturn.Text = Constant.BUTTON_TEXT_AUDITRETURN;
//绑定缺陷扣罚
this.BindSelectDate();
//如果是修改,要绑定选中的信息
if (this._formType == Constant.FormMode.Edit)
{
this.BindPage();
}
//如果是新建,选项默认值设定
else if(this._formType == Constant.FormMode.Add || this._formType == Constant.FormMode.CopyAndAdd)
{
this.cbCeremonial.Checked = true;
this.cbCoefficient.Checked = true;
// 如果是复制明细,那么扣罚类型就不可修改。
if(this._formType == Constant.FormMode.CopyAndAdd)
{
this.cbCoefficient.Checked = false;
this.cbMoney.Checked = true;
this.cbCoefficient.Enabled = false;
this.cbMoney.Enabled = false;
this.txtCoefficient.Enabled = false;
}
}
//如果是审核,绑定值后,所有控件不可用,保存按钮变为明细按钮,并且审批通过与不通过按钮变为可见
else
{
//绑定页面实体成员变量
this.BindPage();
this.txtCoefficient.Enabled = false;
this.txtDefectFineName.Enabled = false;
this.txtRemarks.Enabled = false;
this.lbxDefectFine.Enabled = false;
this.dtpStartTime.Enabled = false;
this.cbCeremonial.Enabled = false;
this.cbCoefficient.Enabled = false;
this.cbMoney.Enabled = false;
this.cbTrial.Enabled = false;
this.btnSubmit.Text = Constant.BUTTON_TEXT_DETAIL;
this.btnPass.Visible = true;
this.btnReturn.Visible = true;
//并且,如果是按系数扣罚,明细按钮也要不可用
if(this.cbCoefficient.Checked == true)
{
this.btnSubmit.Enabled = false;
}
}
}
catch(Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 提交操作
///
///
///
private void btnSubmit_Click(object sender, EventArgs e)
{
//如果是审批以外的状态,进行添加信息相关的操作
if (this._formType != Constant.FormMode.Display)
{
//首先验证数据合法性
if (this.ValidationInput() == false)
{
return;
}
//为实体绑定属性
this.BindEntity();
//进行添加操作
ServiceResultEntity srEntity = (ServiceResultEntity)DoAsync(() =>
{
return EntityToServer();
});
//服务实体共通处理
ServiceResultEntityManager.HandleServiceResultEntity(srEntity, this.Text);
if (srEntity.Status == Constant.ServiceResultStatus.Success)
{
this.DialogResult = DialogResult.OK;
}
}
else//审批操作的话,只打开明细的查看模式就可以了
{
//模式化开启明细窗体
F_TAT_0102 frmTAT0102 = new F_TAT_0102(Constant.FormMode.Display, Convert.ToInt32(this._entityId));
DialogResult dialogResult = frmTAT0102.ShowDialog();
}
}
///
/// 窗体关闭
///
///
///
private void btnClose_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
}
///
/// 选项改变事件
///
///
///
private void cbCoefficient_CheckedChanged(object sender, EventArgs e)
{
if (this.cbCoefficient.Checked == true)
{
this.txtCoefficient.Enabled = true;
}
else
{
this.txtCoefficient.Enabled = false;
this.txtCoefficient.Text = string.Empty;
}
}
///
/// 选项改变事件
///
///
///
private void cbMoney_CheckedChanged(object sender, EventArgs e)
{
if (this.cbCoefficient.Checked == true)
{
this.txtCoefficient.Enabled = true;
}
else
{
this.txtCoefficient.Enabled = false;
this.txtCoefficient.Text = string.Empty;
}
}
///
/// 审批通过
///
///
///
private void btnPass_Click(object sender, EventArgs e)
{
//进行审核操作
this._dfEntity.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._dfEntity.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 BindSelectDate()
{
try
{
//绑定缺陷扣罚
DataTable dtDefectFine = SystemModuleProxy.Service.GetDataDictionaryByType(Constant.DictionaryType.ASE002, Constant.INT_IS_ONE);
if (dtDefectFine != null)
{
lbxDefectFine.DisplayMember = "DictionaryValue";
lbxDefectFine.ValueMember = "DictionaryID";
lbxDefectFine.DataSource = dtDefectFine;
}
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 为实体绑定页面属性
///
private void BindEntity()
{
this._dfEntity.DefectFineName = this.txtDefectFineName.Text.Trim();
this._dfEntity.DefectFine = Convert.ToInt32(this.lbxDefectFine.SelectedValue);
this._dfEntity.BeginAccountMonth = this.dtpStartTime.Value.Date;
if(this.cbCeremonial.Checked)
{
this._dfEntity.SalaryType = 1;
}
else
{
this._dfEntity.SalaryType = 0;
}
if(this.cbCoefficient.Checked)
{
this._dfEntity.FineType = 1;
this._dfEntity.Coefficient = Convert.ToDecimal(this.txtCoefficient.Text);
}
else
{
this._dfEntity.FineType = 2;
}
this._dfEntity.Remarks = this.txtRemarks.Text;
this._dfEntity.AuditStatus = 0;
}
///
/// 与服务交互操作
///
///
private ServiceResultEntity EntityToServer()
{
if (this._formType == Constant.FormMode.Add)
{
return TATModuleProxy.Service.AddDefectFine(this._dfEntity);
}
else if(this._formType == Constant.FormMode.Edit)
{
return TATModuleProxy.Service.UpdateDefectFine(this._dfEntity);
}
else if(_formType == Constant.FormMode.CopyAndAdd)
{
this._dfEntity.CopyId = Convert.ToInt32(this._entityId);
return TATModuleProxy.Service.AddDefectFine(this._dfEntity);
}
else if(_formType == Constant.FormMode.Display)
{
return TATModuleProxy.Service.AuditDefectFine(this._dfEntity);
}
return null;
}
///
/// 验证必填项
///
/// 是否通过
private bool ValidationInput()
{
if (string.IsNullOrWhiteSpace(this.txtDefectFineName.Text))
{
this.txtDefectFineName.Focus();
return false;
}
if(this.lbxDefectFine.SelectedValue == null)
{
this.lbxDefectFine.Focus();
return false;
}
if (this.cbCoefficient.Checked == true && string.IsNullOrWhiteSpace(this.txtCoefficient.Text))
{
this.txtCoefficient.Focus();
return false;
}
return true;
}
///
/// 清空页面
///
private void ClaerInput()
{
this.txtDefectFineName.Text = string.Empty;
this.lbxDefectFine.Text = string.Empty;
this.txtCoefficient.Text = string.Empty;
this.cbCoefficient.Checked = true;
this.cbCeremonial.Checked = true;
this.txtRemarks.Text = string.Empty;
}
///
/// 绑定需要操作的实体信息
///
private void BindPage()
{
if(this._entityId != 0 && this._entityId != null)
{
this._dfEntity.DefectFineID = this._entityId;
ServiceResultEntity srEntity = TATModuleProxy.Service.GetDefectFine(this._dfEntity);
if (srEntity.Data != null && srEntity.Data.Tables.Count != 0
&& srEntity.Data.Tables[0].Rows.Count != 0)
{
DataSet dsEntityData = (DataSet)srEntity.Data;
DataRow drEntityRow = dsEntityData.Tables[0].Rows[0];
this.txtDefectFineName.Text = drEntityRow["DefectFineName"].ToString();
this.lbxDefectFine.SelectedValue = Convert.ToInt32(drEntityRow["DefectFine"]);
int FineType = Convert.ToInt32(drEntityRow["FineType"]);
if(FineType == 1)
{
this.cbCoefficient.Checked = true;
this.txtCoefficient.Text = Convert.ToDecimal(drEntityRow["Coefficient"]).ToString();
}
else
{
this.cbMoney.Checked = true;
}
int SalaryType = Convert.ToInt32(drEntityRow["SalaryType"]);
this._dfEntity.SalaryType = SalaryType;
if(SalaryType == 1)
{
this.cbCeremonial.Checked = true;
}
else
{
this.cbTrial.Checked = true;
}
this.txtRemarks.Text = drEntityRow["Remarks"].ToString();
this.dtpStartTime.Text = drEntityRow["BeginAccountMonth"].ToString();
this._dfEntity.BeginAccountMonth = Convert.ToDateTime(drEntityRow["BeginAccountMonth"].ToString());
//将时间戳给到要修改的实体中
this._dfEntity.OPTimeStamp = Convert.ToDateTime(drEntityRow["OPTimeStamp"]);
}
}
}
#endregion
}
}