1
yhj
2024-07-24 5e5d945e91568b973faa27d8ab0bcef99fc4a6c5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#region
 
using System;
using System.Collections.Generic;
using System.Drawing;
using CSFrameworkV5.Business;
using CSFrameworkV5.Common;
using CSFrameworkV5.Core;
using CSFrameworkV5.Library.CommonClass;
 
#endregion
 
namespace CSFrameworkV5.Library
{
    public partial class frmBaseEditorQueryBusiness : frmBaseEditorQuery,
        IBusinessSupportable
    {
        protected bllBaseBusiness _BLL = null;
 
        public frmBaseEditorQueryBusiness()
        {
            InitializeComponent();
        }
 
        private void frmBaseEditorQueryBusiness_Load(object sender, EventArgs e)
        {
            //
        }
 
        public override void InitButtons()
        {
            base.InitButtons();
 
            var dataButton = GetBusinessButtons(); //数据操作按钮
            Buttons.AddRange(dataButton);
        }
 
        #region IBusinessSupportable 成员
 
        /// <summary>
        ///     返回业务单据窗体的按钮数组
        /// </summary>
        /// <returns></returns>
        public virtual IButtonInfo[] GetBusinessButtons()
        {
            var list = new List<IButtonInfo>();
 
            //审核/反审
            if (ButtonAuthorized(ButtonAuthority.APPROVAL))
            {
                list.Add(ToolbarRegister.CreateButton("btnApproval", "审核",
                    ToolBarGroup.审核功能,
                    Globals.LoadBitmap("24_Approval.ico"), new Size(57, 28),
                    true, false, DoApproval));
                list.Add(ToolbarRegister.CreateButton("btnApprovalUndo", "反审",
                    ToolBarGroup.审核功能,
                    Globals.LoadBitmap("24_ApprovalUndo.ico"), new Size(57, 28),
                    true, false, DoApprovalUndo));
            }
 
            //查看日志
            if (ButtonAuthorized(ButtonAuthority.SHOW_MOD_HISTORY))
                list.Add(ToolbarRegister.CreateButton("btnShowModifyHistory",
                    "查看日志", ToolBarGroup.扩展功能1,
                    Globals.LoadBitmap("32_EditLog.png"), new Size(57, 28),
                    true, true, DoShowModifyHistory));
 
            return list.ToArray();
        }
 
        /// <summary>
        ///     审核单据
        /// </summary>
        /// <param name="button"></param>
        public virtual void DoApproval(IButtonInfo button)
        {
            AssertFocusedRow();
 
            var row = _SummaryView.GetDataRow(_SummaryView.FocusedRowHandle);
            var docNo = row[_BLL.KeyFieldName].ToStringEx();
 
            if (_BLL.IsApproved(row))
            {
                Msg.Warning($"单据<{docNo}>已经审核,不可重复操作!");
            }
            else
            {
                if (Msg.AskQuestion($"确定要审核单据<{docNo}>吗?"))
                {
                    _BLL.ApprovalBusiness(row); //审核单据                
                    _SummaryView.RefreshRow(_SummaryView.FocusedRowHandle);
                    DoViewContent(null); //显示单据明细
                }
            }
        }
 
        public virtual void DoApprovalUndo(IButtonInfo button)
        {
            AssertFocusedRow();
 
            var row = _SummaryView.GetDataRow(_SummaryView.FocusedRowHandle);
            var docNo = row[_BLL.KeyFieldName].ToStringEx();
 
            if (!_BLL.IsApproved(row))
            {
                Msg.Warning($"单据<{docNo}>没有审核,不需要反审核操作!");
            }
            else
            {
                if (Msg.AskQuestion($"确定要反审核单据<{docNo}>吗?"))
                {
                    _BLL.ApprovalBusinessUndo(row); //审核单据                
                    _SummaryView.RefreshRow(_SummaryView.FocusedRowHandle);
                    DoViewContent(null); //显示单据明细
                }
            }
        }
 
        /// <summary>
        ///     查看单据的修改历史记录
        /// </summary>
        /// <param name="button"></param>
        public virtual void DoShowModifyHistory(IButtonInfo button)
        {
            AssertFocusedRow();
            var form = MdiTools.OpenChildForm(MdiParent as IMdiForm,
                typeof(frmLogEditHistory), false);
            if (form != null)
            {
                var keyValue = "";
                if (tcBusiness.SelectedTabPageIndex == 0) //数据查看
                    keyValue =
                        _SummaryView.GetDataRow(_SummaryView.FocusedRowHandle)[
                            _BLL.KeyFieldName].ToStringEx();
                else //数据编辑
                    keyValue = _BLL.DataBinder != null
                        ? _BLL.DataBindRow[_BLL.KeyFieldName].ToStringEx()
                        : "";
 
                (form as frmLogEditHistory).ShowData(_BLL.SummaryTableName,
                    keyValue, DateTime.Today);
            }
        }
 
        /// <summary>
        ///     外部调用接口,显示单据
        /// </summary>
        /// <param name="docNo">单据号码</param>
        public virtual void ShowBusiness(string docNo)
        {
            Msg.ShowInformation("请在派生类实现些方法,主键:" + docNo);
        }
 
        #endregion
    }
}