单表基础资料窗体扩展审核/反审核功能
1、添加扩展按钮
C# 全选
public override void InitButtons()
{
base.InitButtons();
IList buttons = new ArrayList();
//审核/反审
if (this.ButtonAuthorized(ButtonAuthority.APPROVAL))
{
buttons.Add(this.ToolbarRegister.CreateButton(ButtonNameList.btnApproval, "审核", ToolBarGroup.审核功能, Globals.LoadBitmap("24_Approval.ico"), new Size(57, 28), true, false, this.DoApproval));
buttons.Add(this.ToolbarRegister.CreateButton(ButtonNameList.btnApprovalUndo, "反审", ToolBarGroup.审核功能, Globals.LoadBitmap("24_ApprovalUndo.ico"), new Size(57, 28), true, false, this.DoApprovalUndo));
}
//在Toolbar上显示
this._buttons.AddRange(buttons);
}
2、DoApproval 审核方法
C# 全选
public void DoApproval(IButtonInfo button)
{
AssertFocusedRow();
var row = (res_Product)_SummaryView.GetFocusedRow();
var docNo = row.ProductCode;
if (_BLL.IsApproved(row.ToObject<dt_Product>()))
{
Msg.Warning($"产品 <{docNo}> 已经审核,不可重复操作!");
}
else
{
if (Msg.AskQuestion($"确定要审核产品 <{docNo}> 吗? "))
{
var ok = _BLL.ApprovalBusiness(row.ToObject<dt_Product>()); //审核单据
if (ok)
{
row.FlagApp = "Y";
row.AppUser = Loginer.CurrentUser.Account;
row.AppDate = DateTime.Now;
_SummaryView.RefreshRow(_SummaryView.FocusedRowHandle);
this.DoViewContent(null);//显示单据明细
}
}
}
}
C# 全选
public bool ApprovalBusiness(dt_Product current)
{
var input = new req_Approval
{
DocNo = current.ProductCode,
Type = ApprovalType.Approval,
};
var result = _Bridge.ApprovalBusiness(input);
if (result)
{
current.FlagApp = "Y";
current.AppDate = DateTime.Now;
current.AppUser = Core.Loginer.CurrentUser.Account;
}
return result;
}
3、DoApprovalUndo 反审核方法
C# 全选
public void DoApprovalUndo(IButtonInfo button)
{
AssertFocusedRow();
var row = (res_Product)_SummaryView.GetFocusedRow();
var docNo = row.ProductCode;
if (_BLL.IsApproved(row.ToObject<dt_Product>()) == false)
{
Msg.Warning($"产品 <{docNo}> 没有审核,不需要反审核操作!");
}
else
{
if (Msg.AskQuestion($"确定要反审核产品 <{docNo}> 吗? "))
{
var ok = _BLL.ApprovalBusinessUndo(row.ToObject<dt_Product>()); //审核单据
if (ok)
{
row.FlagApp = "N";
row.AppUser = null;
row.AppDate = null;
_SummaryView.RefreshRow(_SummaryView.FocusedRowHandle);
this.DoViewContent(null);//显示单据明细
}
}
}
}
C# 全选
/// <summary>
/// 反审核单据。
/// </summary>
public bool ApprovalBusinessUndo(dt_Product current)
{
var input = new req_Approval
{
DocNo = current.ProductCode,
Type = ApprovalType.UnApproval,
};
var result = _Bridge.ApprovalBusiness(input);
if (result)
{
current.FlagApp = "N";
current.AppDate = null;
current.AppUser = null;
}
return result;
}
4、 DAL层 ApprovalBusiness 方法
C# 全选
public bool ApprovalBusiness(req_Approval input)
{
var q = _Database.GetQueryable<dt_Product>();
var doc = q.Where(w => w.ProductCode == input.DocNo).FirstOrDefault();
if (doc != null)
{
if (input.Type == ApprovalType.Approval)
{
doc.AppDate = DateTime.Now;
doc.AppUser = _Loginer.Account;
doc.FlagApp = "Y";
}
else if (input.Type == ApprovalType.UnApproval)
{
doc.AppDate = null;
doc.AppUser = string.Empty;
doc.FlagApp = "N";
}
var ok = _Database.Update(doc) == 1;
if (ok) _Log.Log(DataLogType.approval, "审核/反审", nameof(dt_Product), input.DocNo, _Loginer.Account, input);
return ok;
}
else
{
return false;
}
}
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网





