From 5e2781182d1889b967fd9df11a124f04516e8064 Mon Sep 17 00:00:00 2001
From: PastSaid <603806070@qq.com>
Date: Mon, 4 Mar 2024 16:50:20 +0800
Subject: [PATCH] a
---
AllOperation/AllEventDynamicFormPlugIn.cs | 581 +++
AllOperation/AllOperation.csproj | 59 +
AllOperation/Properties/AssemblyInfo.cs | 36 +
.../CY.AR_RecMatchFilter.csproj | 109 +
CY.AR_RecMatchFilter/Class1.cs | 11 +
.../MatchFilterStencilEditEx.cs | 78 +
.../Properties/AssemblyInfo.cs | 36 +
CY.AR_RecMatchFilter/RecSpecialEditEx.cs | 498 +++
CY.AR_RecMatchFilter/SpecialStencilEditEx.cs | 2308 ++++++++++++
CY.PRD_MORPT.Python/CY.PRD_MORPT.Python.py | 80 +
.../CY.PRD_MORPT.Python.pyproj | 42 +
.../SQLServer/实际工时归集关联查询.sql | 72 +
.../SQLServer/长园客户与开票单位数据置换.sql | 22 +
CY.PRD_MORPT.Python/类1.py | 82 +
CY.PRD_MORPT/CY.PRD_MORPT.csproj | 75 +
CY.PRD_MORPT/Properties/AssemblyInfo.cs | 36 +
...orkTimeAfterAuditOperationServicePlugIn.cs | 137 +
CY.PRD_MORPT/实际工时归集关联查询.sql | 51 +
EC.STK_Inventory/EC.STK_Inventory.csproj | 62 +
EC.STK_Inventory/ListEventPlugIn.cs | 36 +
EC.STK_Inventory/Properties/AssemblyInfo.cs | 36 +
.../EC.STK_MISCELLANEOUS.csproj | 46 +
.../Properties/AssemblyInfo.cs | 36 +
EC.STK_MisDelivery/EC.STK_MisDelivery.csproj | 46 +
EC.STK_MisDelivery/Properties/AssemblyInfo.cs | 36 +
.../EC.STK_StockCountGain.csproj | 46 +
.../Properties/AssemblyInfo.cs | 36 +
.../EC.STK_StockCountLoss.csproj | 46 +
.../Properties/AssemblyInfo.cs | 36 +
EastChanger/BaseService.cs | 97 +
EastChanger/EastChanger.csproj | 94 +
EastChanger/Properties/AssemblyInfo.cs | 36 +
EastChanger/SQLServer/0.海关接口请求参数.sql | 12 +
EastChanger/SQLServer/1.账册信息视图.sql | 22 +
.../SQLServer/2.1.库存明细同步接口回填.sql | 36 +
EastChanger/SQLServer/2.明细信息关联视图.sql | 37 +
.../STK_Inventory/ListEventPlugInEx.cs | 37 +
.../STK_Inventory/STKInventoryService.cs | 209 ++
EastChanger/SignUtil.cs | 87 +
EastChanger/sfj4Class.cs | 44 +
.../Enpower.Database.sqlproj | 13 +-
Enpower.Database/生产订单BOM.sql | 49 +
Enpower.Database/生产订单BOM_创建临时表.sql | 186 +
Enpower.Database/生产订单BOM_查询.sql | 218 ++
...单BOM_选中订单_更新层号_存储过程20240115.sql | 231 ++
.../生产订单BOM更新层号_存储过程20240114.sql | 229 ++
.../Enpower.PRD_MO.Python.py | 82 +
.../Enpower.PRD_MO.Python.pyproj | 35 +
Enpower.PRD_MO/Enpower.PRD_MO.csproj | 61 +
Enpower.PRD_MO/Properties/AssemblyInfo.cs | 36 +
Enpower.PRD_MO/SQLserver/PLAN2.sql | 222 ++
.../更新计划订单_预测单信息_存储过程.sql | 148 +
...新计划订单_预测单信息_存储过程_20240120.sql | 187 +
...生产层号为空的生产用料清单202402261540.sql | 19 +
Enpower.PRD_MO/SQLserver/查询语句.sql | 117 +
Enpower.PRD_MO/SQLserver/生产订单BOM.sql | 49 +
.../SQLserver/生产订单BOM_创建临时表.sql | 186 +
Enpower.PRD_MO/SQLserver/生产订单BOM_查询.sql | 219 ++
...单BOM_选中订单_更新层号_存储过程20240115.sql | 231 ++
.../生产订单BOM更新层号_存储过程20240114.sql | 229 ++
.../SQLserver/统计需要更新的数据.sql | 20 +
.../SQLserver/英博尔测试20240220.sql | 232 ++
.../SQLserver/计划订单更新预测单信息新sql.sql | 179 +
Extensions/BooleanExtension.cs | 15 +
Extensions/DateTimeExtension.cs | 8 +
Extensions/ExtensionMethods.csproj | 2 +
Extensions/ObjectExtension.cs | 18 +
Extensions/StringExtension.cs | 20 +
GateDge2023.pyproj | 217 ++
GateDge2023.sln | 122 +
HW.DataBase/Script1.sql | 1 -
HW.PRD_MO.Python.pyperf | 13 +
HW.PRD_MO.Python/HW.PRD_MO.Python.py | 47 +
HW.PRD_MO.Python/HW.PRD_MO.Python.pyproj | 50 +
.../SQLServer/更新对应表中产品对照倒置id.sql | 41 +
.../SQLServer/模具-产品对照倒置表.sql | 32 +
...具产品对照-同一个模具下多个相同产品查询.sql | 13 +
HW.PRD_MO.Python/类1.py | 181 +
HW.PRD_MO/AfterSaveOperationServicePlugIn.cs | 66 +
HW.PRD_MO/HW.PRD_MO.csproj | 66 +
HW.PRD_MO/Properties/AssemblyInfo.cs | 36 +
.../HW.ProductionMateralsPlugIn.csproj | 69 +
.../Properties/AssemblyInfo.cs | 36 +
.../TableOperationPlugInEx.cs | 33 +
HW.PythonPlugIn/HW.PythonPlugIn.pyproj | 49 +
.../ProductionMaterialsReport.py | 323 ++
.../ProductionMaterialsReport/TablePlugIn.py | 67 +
.../sql/20240206联合查询.sql | 127 +
.../sql/bom层级库存状态.sql | 3253 +++++++++++++++++
.../sql/创建临时表.sql | 88 +
.../sql/新BOM层级库存状态.sql | 32 +
.../sql/生产投料查询表_20240206.sql | 179 +
.../测试赋值基础资料.py | 48 +
.../ProductionMaterialsReport/类1.py | 36 +
.../ProductionMaterialsReport/类2.py | 206 ++
HandleUtils/Base64Helper.cs | 72 +
HandleUtils/EncryptHelper.cs | 149 +
HandleUtils/HandleUtils.csproj | 49 +
HandleUtils/Properties/AssemblyInfo.cs | 36 +
HandleUtils/WebHelper.cs | 99 +
K3CExttensionMethods/ListHeaderExtension.cs | 9 +-
.../AutoRecordsInventoryPlugIn.cs | 2 +-
.../完成/2.存储过程_生产计划_查询保存数据.sql | 37 +-
.../完成/5.存储过程_生产计划表_insert.sql | 104 +-
.../完成/6.存储过程_物料即时库存表_insert.sql | 2 +-
.../完成/自定义函数-生产计划-包装规格换算.sql | 6 +-
.../生产计划表2.0/查询_生产计划数据.sql | 145 +-
.../UpdatePlanOrderCustInfoPolicyEx .cs | 4 +
.../HW.ProductionMaterialsReport.csproj | 14 +
.../ProductionMaterialsReportEx.cs | 363 +-
.../SqlServer/仓位值1.sql | 37 +
.../SqlServer/仓位值2.sql | 26 +
.../SqlServer/存储过程-生产用料清单.sql | 228 +-
.../SqlServer/生产用料清单查询.sql | 192 +
ProductionMaterialsReport/TablePlugIn.cs | 27 +
SQLQuery1.sql | 168 +
SQLQuery2.sql | 1 +
Trinomab.PUR_RPT_POOrderTrace/app.config | 56 +
Trinomab.PUR_RPT_POOrderTrace/packages.config | 41 +
.../UnitTestProject.Python.py | 2 +
.../UnitTestProject.Python.pyproj | 35 +
UnitTestProject1/UnitTest1.cs | 172 +-
UnitTestProject1/UnitTestProject1.csproj | 14 +
.../BeforeSaveEventBillPlugIn.cs | 2 +-
.../DataChangedEventFormPlugIn.cs | 1 -
VerifyTest/Ext_HomePagePlugin.cs | 108 +
VerifyTest/MacVerify.cs | 163 +
VerifyTest/Properties/AssemblyInfo.cs | 36 +
VerifyTest/VerifyTest.csproj | 69 +
代码格式修正.sql | 1645 +++++++++
多组织即时库存查询.sql | 27 +
水务_其他出库单_退货_四舍五入.sql | 48 +
珍妮采.sql | 2560 +++++++++++++
133 files changed, 20406 insertions(+), 501 deletions(-)
create mode 100644 AllOperation/AllEventDynamicFormPlugIn.cs
create mode 100644 AllOperation/AllOperation.csproj
create mode 100644 AllOperation/Properties/AssemblyInfo.cs
create mode 100644 CY.AR_RecMatchFilter/CY.AR_RecMatchFilter.csproj
create mode 100644 CY.AR_RecMatchFilter/Class1.cs
create mode 100644 CY.AR_RecMatchFilter/MatchFilterStencilEditEx.cs
create mode 100644 CY.AR_RecMatchFilter/Properties/AssemblyInfo.cs
create mode 100644 CY.AR_RecMatchFilter/RecSpecialEditEx.cs
create mode 100644 CY.AR_RecMatchFilter/SpecialStencilEditEx.cs
create mode 100644 CY.PRD_MORPT.Python/CY.PRD_MORPT.Python.py
create mode 100644 CY.PRD_MORPT.Python/CY.PRD_MORPT.Python.pyproj
create mode 100644 CY.PRD_MORPT.Python/SQLServer/实际工时归集关联查询.sql
create mode 100644 CY.PRD_MORPT.Python/SQLServer/长园客户与开票单位数据置换.sql
create mode 100644 CY.PRD_MORPT.Python/类1.py
create mode 100644 CY.PRD_MORPT/CY.PRD_MORPT.csproj
create mode 100644 CY.PRD_MORPT/Properties/AssemblyInfo.cs
create mode 100644 CY.PRD_MORPT/SetWorkTimeAfterAuditOperationServicePlugIn.cs
create mode 100644 CY.PRD_MORPT/实际工时归集关联查询.sql
create mode 100644 EC.STK_Inventory/EC.STK_Inventory.csproj
create mode 100644 EC.STK_Inventory/ListEventPlugIn.cs
create mode 100644 EC.STK_Inventory/Properties/AssemblyInfo.cs
create mode 100644 EC.STK_MISCELLANEOUS/EC.STK_MISCELLANEOUS.csproj
create mode 100644 EC.STK_MISCELLANEOUS/Properties/AssemblyInfo.cs
create mode 100644 EC.STK_MisDelivery/EC.STK_MisDelivery.csproj
create mode 100644 EC.STK_MisDelivery/Properties/AssemblyInfo.cs
create mode 100644 EC.STK_StockCountGain/EC.STK_StockCountGain.csproj
create mode 100644 EC.STK_StockCountGain/Properties/AssemblyInfo.cs
create mode 100644 EC.STK_StockCountLoss/EC.STK_StockCountLoss.csproj
create mode 100644 EC.STK_StockCountLoss/Properties/AssemblyInfo.cs
create mode 100644 EastChanger/BaseService.cs
create mode 100644 EastChanger/EastChanger.csproj
create mode 100644 EastChanger/Properties/AssemblyInfo.cs
create mode 100644 EastChanger/SQLServer/0.海关接口请求参数.sql
create mode 100644 EastChanger/SQLServer/1.账册信息视图.sql
create mode 100644 EastChanger/SQLServer/2.1.库存明细同步接口回填.sql
create mode 100644 EastChanger/SQLServer/2.明细信息关联视图.sql
create mode 100644 EastChanger/STK_Inventory/ListEventPlugInEx.cs
create mode 100644 EastChanger/STK_Inventory/STKInventoryService.cs
create mode 100644 EastChanger/SignUtil.cs
create mode 100644 EastChanger/sfj4Class.cs
rename HW.DataBase/HW.DataBase.sqlproj => Enpower.Database/Enpower.Database.sqlproj (88%)
create mode 100644 Enpower.Database/生产订单BOM.sql
create mode 100644 Enpower.Database/生产订单BOM_创建临时表.sql
create mode 100644 Enpower.Database/生产订单BOM_查询.sql
create mode 100644 Enpower.Database/生产订单BOM_选中订单_更新层号_存储过程20240115.sql
create mode 100644 Enpower.Database/生产订单BOM更新层号_存储过程20240114.sql
create mode 100644 Enpower.PRD_MO.Python/Enpower.PRD_MO.Python.py
create mode 100644 Enpower.PRD_MO.Python/Enpower.PRD_MO.Python.pyproj
create mode 100644 Enpower.PRD_MO/Enpower.PRD_MO.csproj
create mode 100644 Enpower.PRD_MO/Properties/AssemblyInfo.cs
create mode 100644 Enpower.PRD_MO/SQLserver/PLAN2.sql
create mode 100644 Enpower.PRD_MO/SQLserver/更新计划订单_预测单信息_存储过程.sql
create mode 100644 Enpower.PRD_MO/SQLserver/更新计划订单_预测单信息_存储过程_20240120.sql
create mode 100644 Enpower.PRD_MO/SQLserver/查询生产层号为空的生产用料清单202402261540.sql
create mode 100644 Enpower.PRD_MO/SQLserver/查询语句.sql
create mode 100644 Enpower.PRD_MO/SQLserver/生产订单BOM.sql
create mode 100644 Enpower.PRD_MO/SQLserver/生产订单BOM_创建临时表.sql
create mode 100644 Enpower.PRD_MO/SQLserver/生产订单BOM_查询.sql
create mode 100644 Enpower.PRD_MO/SQLserver/生产订单BOM_选中订单_更新层号_存储过程20240115.sql
create mode 100644 Enpower.PRD_MO/SQLserver/生产订单BOM更新层号_存储过程20240114.sql
create mode 100644 Enpower.PRD_MO/SQLserver/统计需要更新的数据.sql
create mode 100644 Enpower.PRD_MO/SQLserver/英博尔测试20240220.sql
create mode 100644 Enpower.PRD_MO/SQLserver/计划订单更新预测单信息新sql.sql
create mode 100644 Extensions/BooleanExtension.cs
create mode 100644 Extensions/ObjectExtension.cs
create mode 100644 GateDge2023.pyproj
delete mode 100644 HW.DataBase/Script1.sql
create mode 100644 HW.PRD_MO.Python.pyperf
create mode 100644 HW.PRD_MO.Python/HW.PRD_MO.Python.py
create mode 100644 HW.PRD_MO.Python/HW.PRD_MO.Python.pyproj
create mode 100644 HW.PRD_MO.Python/SQLServer/更新对应表中产品对照倒置id.sql
create mode 100644 HW.PRD_MO.Python/SQLServer/模具-产品对照倒置表.sql
create mode 100644 HW.PRD_MO.Python/SQLServer/模具产品对照-同一个模具下多个相同产品查询.sql
create mode 100644 HW.PRD_MO.Python/类1.py
create mode 100644 HW.PRD_MO/AfterSaveOperationServicePlugIn.cs
create mode 100644 HW.PRD_MO/HW.PRD_MO.csproj
create mode 100644 HW.PRD_MO/Properties/AssemblyInfo.cs
create mode 100644 HW.ProductionMateralsPlugIn/HW.ProductionMateralsPlugIn.csproj
create mode 100644 HW.ProductionMateralsPlugIn/Properties/AssemblyInfo.cs
create mode 100644 HW.ProductionMateralsPlugIn/TableOperationPlugInEx.cs
create mode 100644 HW.PythonPlugIn/HW.PythonPlugIn.pyproj
create mode 100644 HW.PythonPlugIn/ProductionMaterialsReport/ProductionMaterialsReport.py
create mode 100644 HW.PythonPlugIn/ProductionMaterialsReport/TablePlugIn.py
create mode 100644 HW.PythonPlugIn/ProductionMaterialsReport/sql/20240206联合查询.sql
create mode 100644 HW.PythonPlugIn/ProductionMaterialsReport/sql/bom层级库存状态.sql
create mode 100644 HW.PythonPlugIn/ProductionMaterialsReport/sql/创建临时表.sql
create mode 100644 HW.PythonPlugIn/ProductionMaterialsReport/sql/新BOM层级库存状态.sql
create mode 100644 HW.PythonPlugIn/ProductionMaterialsReport/sql/生产投料查询表_20240206.sql
create mode 100644 HW.PythonPlugIn/ProductionMaterialsReport/测试赋值基础资料.py
create mode 100644 HW.PythonPlugIn/ProductionMaterialsReport/类1.py
create mode 100644 HW.PythonPlugIn/ProductionMaterialsReport/类2.py
create mode 100644 HandleUtils/Base64Helper.cs
create mode 100644 HandleUtils/EncryptHelper.cs
create mode 100644 HandleUtils/HandleUtils.csproj
create mode 100644 HandleUtils/Properties/AssemblyInfo.cs
create mode 100644 HandleUtils/WebHelper.cs
create mode 100644 ProductionMaterialsReport/SqlServer/仓位值1.sql
create mode 100644 ProductionMaterialsReport/SqlServer/仓位值2.sql
create mode 100644 ProductionMaterialsReport/SqlServer/生产用料清单查询.sql
create mode 100644 ProductionMaterialsReport/TablePlugIn.cs
create mode 100644 SQLQuery1.sql
create mode 100644 SQLQuery2.sql
create mode 100644 Trinomab.PUR_RPT_POOrderTrace/app.config
create mode 100644 Trinomab.PUR_RPT_POOrderTrace/packages.config
create mode 100644 UnitTestProject.Python/UnitTestProject.Python.py
create mode 100644 UnitTestProject.Python/UnitTestProject.Python.pyproj
create mode 100644 VerifyTest/Ext_HomePagePlugin.cs
create mode 100644 VerifyTest/MacVerify.cs
create mode 100644 VerifyTest/Properties/AssemblyInfo.cs
create mode 100644 VerifyTest/VerifyTest.csproj
create mode 100644 代码格式修正.sql
create mode 100644 多组织即时库存查询.sql
create mode 100644 水务_其他出库单_退货_四舍五入.sql
create mode 100644 珍妮采.sql
diff --git a/AllOperation/AllEventDynamicFormPlugIn.cs b/AllOperation/AllEventDynamicFormPlugIn.cs
new file mode 100644
index 0000000..206ad31
--- /dev/null
+++ b/AllOperation/AllEventDynamicFormPlugIn.cs
@@ -0,0 +1,581 @@
+using Kingdee.BOS.Util;
+using System;
+using System.ComponentModel;
+namespace Jac.XkDemo.BOS.Business.PlugIn
+{
+ ///
+ /// 【表单插件】全事件
+ ///
+ [Description("【表单插件】全事件"), HotUpdate]
+ public class AllEventDynamicFormPlugIn : Kingdee.BOS.Core.DynamicForm.PlugIn.AbstractDynamicFormPlugIn
+ {
+ #region event
+ public override void BeforeExportDataNew(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeforeExportDataNewArgs e)
+ {
+ PrintEventInfo("BeforeExportDataNew", e);
+ base.BeforeExportDataNew(e);
+ }
+ public override void CreateNewData(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BizDataEventArgs e)
+ {
+ PrintEventInfo("CreateNewData", e);
+ base.CreateNewData(e);
+ }
+ public override void AfterCreateNewData(System.EventArgs e)
+ {
+ PrintEventInfo("AfterCreateNewData", e);
+ base.AfterCreateNewData(e);
+ }
+ public override void OnChangeConvertRuleEnumList(Kingdee.BOS.Core.List.PlugIn.Args.ChangeConvertRuleEnumListEventArgs e)
+ {
+ PrintEventInfo("OnChangeConvertRuleEnumList", e);
+ base.OnChangeConvertRuleEnumList(e);
+ }
+ public override void AfterCreateModelData(System.EventArgs e)
+ {
+ PrintEventInfo("AfterCreateModelData", e);
+ base.AfterCreateModelData(e);
+ }
+ public override void BeforeControlDataBinder(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeforeControlDataBinder e)
+ {
+ PrintEventInfo("BeforeControlDataBinder", e);
+ base.BeforeControlDataBinder(e);
+ }
+ public override void BeforeEntryRowDataBinder(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeforeEntryRowDataBinderArgs e)
+ {
+ PrintEventInfo("BeforeEntryRowDataBinder", e);
+ base.BeforeEntryRowDataBinder(e);
+ }
+ public override void BeforeEntryBatchFill(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeforeBatchFillEventArgs e)
+ {
+ PrintEventInfo("BeforeEntryBatchFill", e);
+ base.BeforeEntryBatchFill(e);
+ }
+ public override void AfterEntryBatchFill(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.AfterBatchFillEventArgs e)
+ {
+ PrintEventInfo("AfterEntryBatchFill", e);
+ base.AfterEntryBatchFill(e);
+ }
+ public override void BeforeCreateNewEntryRow(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeforeCreateNewEntryEventArgs e)
+ {
+ PrintEventInfo("BeforeCreateNewEntryRow", e);
+ base.BeforeCreateNewEntryRow(e);
+ }
+ public override void AfterCreateNewEntryRow(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.CreateNewEntryEventArgs e)
+ {
+ PrintEventInfo("AfterCreateNewEntryRow", e);
+ base.AfterCreateNewEntryRow(e);
+ }
+ public override void BeforeDeleteRow(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeforeDeleteRowEventArgs e)
+ {
+ PrintEventInfo("BeforeDeleteRow", e);
+ base.BeforeDeleteRow(e);
+ }
+ public override void AfterDeleteRow(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.AfterDeleteRowEventArgs e)
+ {
+ PrintEventInfo("AfterDeleteRow", e);
+ base.AfterDeleteRow(e);
+ }
+ public override void BeforeUpdateValue(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeforeUpdateValueEventArgs e)
+ {
+ PrintEventInfo("BeforeUpdateValue", e);
+ base.BeforeUpdateValue(e);
+ }
+ public override void DataChanged(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.DataChangedEventArgs e)
+ {
+ PrintEventInfo("DataChanged", e);
+ base.DataChanged(e);
+ }
+ public override void AfterCopyRow(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.AfterCopyRowEventArgs e)
+ {
+ PrintEventInfo("AfterCopyRow", e);
+ base.AfterCopyRow(e);
+ }
+ public override void BeforeDeleteEntry(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeforeDeleteEntryEventArgs e)
+ {
+ PrintEventInfo("BeforeDeleteEntry", e);
+ base.BeforeDeleteEntry(e);
+ }
+ public override void AfterDeleteEntry(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.AfterDeleteEntryEventArgs e)
+ {
+ PrintEventInfo("AfterDeleteEntry", e);
+ base.AfterDeleteEntry(e);
+ }
+ public override System.Collections.Generic.List GetTreeViewData(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.TreeNodeArgs e)
+ {
+ PrintEventInfo("GetTreeViewData", e);
+ return base.GetTreeViewData(e);
+ }
+ public override void BeforeSetItemValueByNumber(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeforeSetItemValueByNumberArgs e)
+ {
+ PrintEventInfo("BeforeSetItemValueByNumber", e);
+ base.BeforeSetItemValueByNumber(e);
+ }
+ public override void GroupSearchMenuPanelAction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.GroupSearchMenuPanelEventArgs e)
+ {
+ PrintEventInfo("GroupSearchMenuPanelAction", e);
+ base.GroupSearchMenuPanelAction(e);
+ }
+ public override void ProductsPanelAction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.ProductsPanelEventArgs e)
+ {
+ PrintEventInfo("ProductsPanelAction", e);
+ base.ProductsPanelAction(e);
+ }
+ public override void PreOpenForm(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.PreOpenFormEventArgs e)
+ {
+ PrintEventInfo("PreOpenForm", e);
+ base.PreOpenForm(e);
+ }
+ public override void OnInitialize(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.InitializeEventArgs e)
+ {
+ PrintEventInfo("OnInitialize", e);
+ base.OnInitialize(e);
+ }
+ public override void OnInitializeService(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.InitializeServiceEventArgs e)
+ {
+ PrintEventInfo("OnInitializeService", e);
+ base.OnInitializeService(e);
+ }
+ public override void OnSetBusinessInfo(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.SetBusinessInfoArgs e)
+ {
+ PrintEventInfo("OnSetBusinessInfo", e);
+ base.OnSetBusinessInfo(e);
+ }
+ public override void OnSetLayoutInfo(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.SetLayoutInfoArgs e)
+ {
+ PrintEventInfo("OnSetLayoutInfo", e);
+ base.OnSetLayoutInfo(e);
+ }
+ public override void OnCreateDataBinder(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.CreateDataBinderArgs e)
+ {
+ PrintEventInfo("OnCreateDataBinder", e);
+ base.OnCreateDataBinder(e);
+ }
+ public override void OnLoad(System.EventArgs e)
+ {
+ PrintEventInfo("OnLoad", e);
+ base.OnLoad(e);
+ }
+ public override void BeforeClosed(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeforeClosedEventArgs e)
+ {
+ PrintEventInfo("BeforeClosed", e);
+ base.BeforeClosed(e);
+ }
+ public override void BeforeFlexClosed(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeforeClosedEventArgs e)
+ {
+ PrintEventInfo("BeforeFlexClosed", e);
+ base.BeforeFlexClosed(e);
+ }
+ public override void AfterShowFlexForm(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.AfterShowFlexFormEventArgs e)
+ {
+ PrintEventInfo("AfterShowFlexForm", e);
+ base.AfterShowFlexForm(e);
+ }
+ public override void Dispose()
+ {
+ PrintEventInfo("Dispose");
+ base.Dispose();
+ }
+ public override void BeforeBindData(System.EventArgs e)
+ {
+ PrintEventInfo("BeforeBindData", e);
+ base.BeforeBindData(e);
+ }
+ public override void AfterBindData(System.EventArgs e)
+ {
+ PrintEventInfo("AfterBindData", e);
+ base.AfterBindData(e);
+ }
+ public override void AfterUpdateViewState(System.EventArgs e)
+ {
+ PrintEventInfo("AfterUpdateViewState", e);
+ base.AfterUpdateViewState(e);
+ }
+ public override void OnTimerElapsed(System.EventArgs e)
+ {
+ PrintEventInfo("OnTimerElapsed", e);
+ base.OnTimerElapsed(e);
+ }
+ public override void OnQueryProgressValue(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.QueryProgressValueEventArgs e)
+ {
+ PrintEventInfo("OnQueryProgressValue", e);
+ base.OnQueryProgressValue(e);
+ }
+ public override void BarItemClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BarItemClickEventArgs e)
+ {
+ PrintEventInfo("BarItemClick", e);
+ base.BarItemClick(e);
+ }
+ public override void ContextMenuItemClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.ContextMenuItemClickEventArgs e)
+ {
+ PrintEventInfo("ContextMenuItemClick", e);
+ base.ContextMenuItemClick(e);
+ }
+ public override void EntryBarItemClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BarItemClickEventArgs e)
+ {
+ PrintEventInfo("EntryBarItemClick", e);
+ base.EntryBarItemClick(e);
+ }
+ public override void ToolBarItemClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BarItemClickEventArgs e)
+ {
+ PrintEventInfo("ToolBarItemClick", e);
+ base.ToolBarItemClick(e);
+ }
+ public override void AfterBarItemClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.AfterBarItemClickEventArgs e)
+ {
+ PrintEventInfo("AfterBarItemClick", e);
+ base.AfterBarItemClick(e);
+ }
+ public override void AfterEntryBarItemClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.AfterBarItemClickEventArgs e)
+ {
+ PrintEventInfo("AfterEntryBarItemClick", e);
+ base.AfterEntryBarItemClick(e);
+ }
+ public override void AfterToolBarItemClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.AfterBarItemClickEventArgs e)
+ {
+ PrintEventInfo("AfterToolBarItemClick", e);
+ base.AfterToolBarItemClick(e);
+ }
+ public override void ButtonClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.ButtonClickEventArgs e)
+ {
+ PrintEventInfo("ButtonClick", e);
+ base.ButtonClick(e);
+ }
+ public override void ChangeHTmlTheme(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.HtmlThemeEventArgs e)
+ {
+ PrintEventInfo("ChangeHTmlTheme", e);
+ base.ChangeHTmlTheme(e);
+ }
+ public override void EntryButtonCellClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EntryButtonCellClickEventArgs e)
+ {
+ PrintEventInfo("EntryButtonCellClick", e);
+ base.EntryButtonCellClick(e);
+ }
+ public override void AfterButtonClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.AfterButtonClickEventArgs e)
+ {
+ PrintEventInfo("AfterButtonClick", e);
+ base.AfterButtonClick(e);
+ }
+ public override void TreeNodeClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.TreeNodeArgs e)
+ {
+ PrintEventInfo("TreeNodeClick", e);
+ base.TreeNodeClick(e);
+ }
+ public override void TreeNodeDoubleClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.TreeNodeArgs e)
+ {
+ PrintEventInfo("TreeNodeDoubleClick", e);
+ base.TreeNodeDoubleClick(e);
+ }
+ public override void TreeLoadData(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.TreeLoadDataArgs e)
+ {
+ PrintEventInfo("TreeLoadData", e);
+ base.TreeLoadData(e);
+ }
+ public override void BeforeDoAction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeforeDoActionEventArgs e)
+ {
+ PrintEventInfo("BeforeDoAction", e);
+ base.BeforeDoAction(e);
+ }
+ public override void AfterDoAction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.AfterDoActionEventArgs e)
+ {
+ PrintEventInfo("AfterDoAction", e);
+ base.AfterDoAction(e);
+ }
+ public override void AuthPermissionBeforeF7Select(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.AuthPermissionBeforeF7SelectEventArgs e)
+ {
+ PrintEventInfo("AuthPermissionBeforeF7Select", e);
+ base.AuthPermissionBeforeF7Select(e);
+ }
+ public override void BeforeF7Select(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeforeF7SelectEventArgs e)
+ {
+ PrintEventInfo("BeforeF7Select", e);
+ base.BeforeF7Select(e);
+ }
+ public override void AfterF7Select(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.AfterF7SelectEventArgs e)
+ {
+ PrintEventInfo("AfterF7Select", e);
+ base.AfterF7Select(e);
+ }
+ public override void AfterQuickGetData(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.AfterQuickGetDataEventArgs e)
+ {
+ PrintEventInfo("AfterQuickGetData", e);
+ base.AfterQuickGetData(e);
+ }
+ public override void AfterQuickSelect(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.AfterQuickSelectEventArgs e)
+ {
+ PrintEventInfo("AfterQuickSelect", e);
+ base.AfterQuickSelect(e);
+ }
+ public override void BeforeFlexSelect(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeforeFlexSelectEventArgs e)
+ {
+ PrintEventInfo("BeforeFlexSelect", e);
+ base.BeforeFlexSelect(e);
+ }
+ public override void BeforeFilterGridF7Select(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeforeFilterGridF7SelectEventArgs e)
+ {
+ PrintEventInfo("BeforeFilterGridF7Select", e);
+ base.BeforeFilterGridF7Select(e);
+ }
+ public override void AfterShowCustomerPage(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.AfterShowCustomerPageEventArgs e)
+ {
+ PrintEventInfo("AfterShowCustomerPage", e);
+ base.AfterShowCustomerPage(e);
+ }
+ public override void AfterShowForm(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.AfterShowFormEventArgs e)
+ {
+ PrintEventInfo("AfterShowForm", e);
+ base.AfterShowForm(e);
+ }
+ public override void BeforeDoOperation(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeforeDoOperationEventArgs e)
+ {
+ PrintEventInfo("BeforeDoOperation", e);
+ base.BeforeDoOperation(e);
+ }
+ public override void BeforeOperAfterSelOrg(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeforeOperAfterSelOrgArgs e)
+ {
+ PrintEventInfo("BeforeOperAfterSelOrg", e);
+ base.BeforeOperAfterSelOrg(e);
+ }
+ public override void AfterDoOperation(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.AfterDoOperationEventArgs e)
+ {
+ PrintEventInfo("AfterDoOperation", e);
+ base.AfterDoOperation(e);
+ }
+ public override void AfterConfirmOperation(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.AfterConfirmOperationEventArgs e)
+ {
+ PrintEventInfo("AfterConfirmOperation", e);
+ base.AfterConfirmOperation(e);
+ }
+ public override void ListViewClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.ListViewClickArgs e)
+ {
+ PrintEventInfo("ListViewClick", e);
+ base.ListViewClick(e);
+ }
+ public override void ListViewAddFavorClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.ListViewClickArgs e)
+ {
+ PrintEventInfo("ListViewAddFavorClick", e);
+ base.ListViewAddFavorClick(e);
+ }
+ public override void ListViewClearClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.ListViewClickArgs e)
+ {
+ PrintEventInfo("ListViewClearClick", e);
+ base.ListViewClearClick(e);
+ }
+ public override void TreeDragDrop(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.TreeDragDropEventArgs e)
+ {
+ PrintEventInfo("TreeDragDrop", e);
+ base.TreeDragDrop(e);
+ }
+ public override void LanguageChanged(System.EventArgs e)
+ {
+ PrintEventInfo("LanguageChanged", e);
+ base.LanguageChanged(e);
+ }
+ public override void EntityRowClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EntityRowClickEventArgs e)
+ {
+ PrintEventInfo("EntityRowClick", e);
+ base.EntityRowClick(e);
+ }
+ public override void EntryCellFocued(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EntryCellFocuedEventArgs e)
+ {
+ PrintEventInfo("EntryCellFocued", e);
+ base.EntryCellFocued(e);
+ }
+ public override void EntityRowDoubleClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EntityRowClickEventArgs e)
+ {
+ PrintEventInfo("EntityRowDoubleClick", e);
+ base.EntityRowDoubleClick(e);
+ }
+ public override void TabItemSelectedChange(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.TabItemSelectedChangeEventArgs e)
+ {
+ PrintEventInfo("TabItemSelectedChange", e);
+ base.TabItemSelectedChange(e);
+ }
+ public override void CustomEvents(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.CustomEventsArgs e)
+ {
+ PrintEventInfo("CustomEvents", e);
+ base.CustomEvents(e);
+ }
+ public override void RowExpanding(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EntityRowClickEventArgs e)
+ {
+ PrintEventInfo("RowExpanding", e);
+ base.RowExpanding(e);
+ }
+ public override void HeaderCellClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EntityRowClickEventArgs e)
+ {
+ PrintEventInfo("HeaderCellClick", e);
+ base.HeaderCellClick(e);
+ }
+ public override void DataUpdateBeginning()
+ {
+ PrintEventInfo("DataUpdateBeginning");
+ base.DataUpdateBeginning();
+ }
+ public override void DataUpdateEnd()
+ {
+ PrintEventInfo("DataUpdateEnd");
+ base.DataUpdateEnd();
+ }
+ public override void NaviOperAction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.NaviOperActionArgs e)
+ {
+ PrintEventInfo("NaviOperAction", e);
+ base.NaviOperAction(e);
+ }
+ public override void FieldLabelClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.FieldLabelClickArgs e)
+ {
+ PrintEventInfo("FieldLabelClick", e);
+ base.FieldLabelClick(e);
+ }
+ public override void FireEntityBlockPasting(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EntityBlockPastingEventArgs e)
+ {
+ PrintEventInfo("FireEntityBlockPasting", e);
+ base.FireEntityBlockPasting(e);
+ }
+ public override void BeforeF1Click(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.F1ClickArgs e)
+ {
+ PrintEventInfo("BeforeF1Click", e);
+ base.BeforeF1Click(e);
+ }
+ public override void BeforeImportData(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeforeImportDataArgs e)
+ {
+ PrintEventInfo("BeforeImportData", e);
+ base.BeforeImportData(e);
+ }
+ public override void ImportDataCollectFailInfo(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.ImportDataBeforeCollectFailInfoArgs e)
+ {
+ PrintEventInfo("ImportDataCollectFailInfo", e);
+ base.ImportDataCollectFailInfo(e);
+ }
+ public override void BeforeExportData(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeforeExportDataArgs e)
+ {
+ PrintEventInfo("BeforeExportData", e);
+ base.BeforeExportData(e);
+ }
+ public override void BeforeEntityExport(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeforeEntityExportArgs e)
+ {
+ PrintEventInfo("BeforeEntityExport", e);
+ base.BeforeEntityExport(e);
+ }
+ public override void FireEntryCheck(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.FEntryCheckArgs e)
+ {
+ PrintEventInfo("FireEntryCheck", e);
+ base.FireEntryCheck(e);
+ }
+ public override void FireMicroBlogClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.FMicroBlogClickArgs e)
+ {
+ PrintEventInfo("FireMicroBlogClick", e);
+ base.FireMicroBlogClick(e);
+ }
+ public override void PortDataReceived(Kingdee.BOS.DataEntity.KDSerialPortEventArgs e)
+ {
+ PrintEventInfo("PortDataReceived", e);
+ base.PortDataReceived(e);
+ }
+ public override void MsgInnerControlEvent(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.MsgInnerControlEventArgs e)
+ {
+ PrintEventInfo("MsgInnerControlEvent", e);
+ base.MsgInnerControlEvent(e);
+ }
+ public override void GetFormTitle(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.GetFormTitleEventArgs e)
+ {
+ PrintEventInfo("GetFormTitle", e);
+ base.GetFormTitle(e);
+ }
+ public override void OnEntrySum(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EntrySumEventArgs e)
+ {
+ PrintEventInfo("OnEntrySum", e);
+ base.OnEntrySum(e);
+ }
+ public override void OnQueryFlexFieldState(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.OnQueryFlexFieldStateEventArgs e)
+ {
+ PrintEventInfo("OnQueryFlexFieldState", e);
+ base.OnQueryFlexFieldState(e);
+ }
+ public override void OnPrepareDevPrintData(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.PreparePrintDevDataEventArgs e)
+ {
+ PrintEventInfo("OnPrepareDevPrintData", e);
+ base.OnPrepareDevPrintData(e);
+ }
+ public override void OnPrepareNotePrintData(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.PreparePrintDataEventArgs e)
+ {
+ PrintEventInfo("OnPrepareNotePrintData", e);
+ base.OnPrepareNotePrintData(e);
+ }
+ public override void OnPrepareNotePrintQueryParam(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.PrepareNotePrintQueryParamEventArgs e)
+ {
+ PrintEventInfo("OnPrepareNotePrintQueryParam", e);
+ base.OnPrepareNotePrintQueryParam(e);
+ }
+ public override void OnQueryDynamicColumns(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.QueryDynamicColumnsEventArgs e)
+ {
+ PrintEventInfo("OnQueryDynamicColumns", e);
+ base.OnQueryDynamicColumns(e);
+ }
+ public override void OnAfterPrint(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.AfterPrintEventArgs e)
+ {
+ PrintEventInfo("OnAfterPrint", e);
+ base.OnAfterPrint(e);
+ }
+ public override System.Collections.Generic.List GetValidNoteTemplates(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.ValidNoteTemplatesEventArgs e)
+ {
+ PrintEventInfo("GetValidNoteTemplates", e);
+ return base.GetValidNoteTemplates(e);
+ }
+ public override void OnAfterWebApiOperation(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.AfterWebApiOperationArgs e)
+ {
+ PrintEventInfo("OnAfterWebApiOperation", e);
+ base.OnAfterWebApiOperation(e);
+ }
+ public override void OnBeforeWebApiOperation(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.AfterWebApiOperationArgs e)
+ {
+ PrintEventInfo("OnBeforeWebApiOperation", e);
+ base.OnBeforeWebApiOperation(e);
+ }
+ #endregion
+ #region private method
+ ///
+ /// 事件执行次数计数器
+ ///
+ private int counter;
+ ///
+ /// 事件执行次数计数器
+ ///
+ private int Counter
+ {
+ get { return ++counter; }
+ }
+ ///
+ /// 输出事件执行日志
+ ///
+ /// 事件名称
+ /// 事件参数
+ private void PrintEventInfo(string eventName, params object[] args)
+ {
+ var formId = GetFormId();
+ var parameters = string.Empty;
+ try
+ {
+ //parameters = Newtonsoft.Json.JsonConvert.SerializeObject(args);// 性能较差,可能会导致页面假死
+ }
+ catch
+ {
+ }
+ var log = string.Format("序号:{0},执行时间:{1},表单Id:{2},事件名称:{3},事件参数:{4}", Counter, DateTime.Now.ToString("yyyy -MM-dd HH:mm:ss.fff"), formId, eventName, parameters);
+ System.Diagnostics.Debug.Print(log);
+ Kingdee.BOS.Log.Logger.Error("EVENT", log, null);
+ }
+ ///
+ /// 获取业务对象标识
+ ///
+ ///
+ private string GetFormId()
+ {
+ var formId = string.Empty;
+ if (this.View != null && this.View.BillBusinessInfo != null)
+ {
+ formId = this.View.BillBusinessInfo.GetForm().Id;
+ }
+ return formId;
+ }
+ #endregion
+ }
+}
diff --git a/AllOperation/AllOperation.csproj b/AllOperation/AllOperation.csproj
new file mode 100644
index 0000000..91a19f1
--- /dev/null
+++ b/AllOperation/AllOperation.csproj
@@ -0,0 +1,59 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {DE8419DB-4979-4AF6-830D-73F6B793CC31}
+ Library
+ Properties
+ AllOperation
+ AllOperation
+ v4.0
+ 512
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+ ..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.dll
+
+
+ ..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.Contracts.dll
+
+
+ ..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.Core.dll
+
+
+ ..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.DataEntity.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AllOperation/Properties/AssemblyInfo.cs b/AllOperation/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..0b5ab37
--- /dev/null
+++ b/AllOperation/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 有关程序集的一般信息由以下
+// 控制。更改这些特性值可修改
+// 与程序集关联的信息。
+[assembly: AssemblyTitle("AllOperation")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("AllOperation")]
+[assembly: AssemblyCopyright("Copyright © 2024")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 将 ComVisible 设置为 false 会使此程序集中的类型
+//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
+//请将此类型的 ComVisible 特性设置为 true。
+[assembly: ComVisible(false)]
+
+// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
+[assembly: Guid("de8419db-4979-4af6-830d-73f6b793cc31")]
+
+// 程序集的版本信息由下列四个值组成:
+//
+// 主版本
+// 次版本
+// 生成号
+// 修订号
+//
+//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
+//通过使用 "*",如下所示:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/CY.AR_RecMatchFilter/CY.AR_RecMatchFilter.csproj b/CY.AR_RecMatchFilter/CY.AR_RecMatchFilter.csproj
new file mode 100644
index 0000000..3ca2e76
--- /dev/null
+++ b/CY.AR_RecMatchFilter/CY.AR_RecMatchFilter.csproj
@@ -0,0 +1,109 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {7822C382-D01D-41A5-A94A-4A953DD178A7}
+ Library
+ Properties
+ CY.AR_RecMatchFilter
+ CY.AR_RecMatchFilter
+ v4.0
+ 512
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+ ..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.dll
+
+
+ ..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.Business.DynamicForm.dll
+
+
+ False
+ ..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.Contracts.dll
+
+
+ ..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.Core.dll
+
+
+ ..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.DataEntity.dll
+
+
+ False
+ ..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.Model.dll
+
+
+ ..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.ServiceHelper.dll
+
+
+ False
+ ..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.VerificationHelper.dll
+
+
+ ..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.Core.dll
+
+
+ ..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.FIN.AP.Business.PlugIn.dll
+
+
+ ..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.FIN.AP.ServiceHelper.dll
+
+
+ ..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.FIN.App.dll
+
+
+ ..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.FIN.AR.Business.PlugIn.dll
+
+
+ ..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.FIN.Business.PlugIn.dll
+
+
+ False
+ ..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.FIN.Contracts.dll
+
+
+ ..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.FIN.Core.dll
+
+
+ ..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.FIN.ServiceHelper.dll
+
+
+ False
+ ..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Newtonsoft.Json.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CY.AR_RecMatchFilter/Class1.cs b/CY.AR_RecMatchFilter/Class1.cs
new file mode 100644
index 0000000..8251e54
--- /dev/null
+++ b/CY.AR_RecMatchFilter/Class1.cs
@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace CY.AR_RecMatchFilter
+{
+ internal class Class1
+ {
+ }
+}
diff --git a/CY.AR_RecMatchFilter/MatchFilterStencilEditEx.cs b/CY.AR_RecMatchFilter/MatchFilterStencilEditEx.cs
new file mode 100644
index 0000000..b20b010
--- /dev/null
+++ b/CY.AR_RecMatchFilter/MatchFilterStencilEditEx.cs
@@ -0,0 +1,78 @@
+using Kingdee.BOS.Core.CommonFilter;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Core.Permission.Objects;
+using Kingdee.BOS.Util;
+using Kingdee.K3.FIN.Business.PlugIn.Match;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+
+namespace CY.AR_RecMatchFilter
+{
+ [Description("表单插件"), HotUpdate]
+ public class MatchFilterStencilEditEx : MatchFilterStencilEdit
+ {
+ public override void BeforeSetItemValueByNumber(BeforeSetItemValueByNumberArgs e)
+ {
+ base.BeforeSetItemValueByNumber(e);
+ }
+
+ public override void BeforeFilterGridF7Select(BeforeFilterGridF7SelectEventArgs e)
+ {
+ base.BeforeFilterGridF7Select(e);
+ string text;
+ if ((text = e.FieldKey.ToUpperInvariant()) == null || !(text == "F_YECK_Base"))
+ {
+ return;
+ }
+
+ string[] array = View.Model.DataObject["FBillSelect"].ToString().Split(',');
+ if (array.Length > 0)
+ {
+ string text2 = "";
+ for (int i = 0; i < array.Length; i++)
+ {
+ text2 = text2 + "'" + array[i] + "',";
+ }
+
+ e.ListFilterParameter.Filter = $"FBillFormID in ({text2.Substring(0, text2.Length - 1)})";
+ }
+ }
+
+ public override void BeforeF7Select(BeforeF7SelectEventArgs e)
+ {
+ base.BeforeF7Select(e);
+ switch (e.FieldKey.ToUpperInvariant())
+ {
+ case "FINVOICECUST":
+ {
+ List list2 = baseDataTempTable;
+ string filterSQLByTempBaseDataTable2 = GetFilterSQLByTempBaseDataTable("BD_Customer", list2);
+ if (!string.IsNullOrWhiteSpace(filterSQLByTempBaseDataTable2))
+ {
+ if (ObjectUtils.IsNullOrEmptyOrWhiteSpace((object)e.ListFilterParameter.Filter))
+ {
+ e.ListFilterParameter.Filter = filterSQLByTempBaseDataTable2;
+ break;
+ }
+
+ IRegularFilterParameter listFilterParameter2 = e.ListFilterParameter;
+ listFilterParameter2.Filter = listFilterParameter2.Filter + " AND " + filterSQLByTempBaseDataTable2;
+ }
+
+ break;
+ }
+ }
+
+ //系统自动根据字段标识拼接好的过滤表达式
+ var filterStr = this.CommonFilterModel.FilterObject.GetFilterSQLString(this.Context);
+ //条件过滤行原始数据,含比较符
+ var filterRows = this.CommonFilterModel.FilterObject.FilterRows;
+ //高级过滤原始行数据
+ var advanceFilterRows = this.CommonFilterModel.FilterObject.AdvancedFilterRows;
+
+ }
+ }
+}
diff --git a/CY.AR_RecMatchFilter/Properties/AssemblyInfo.cs b/CY.AR_RecMatchFilter/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..9696a3e
--- /dev/null
+++ b/CY.AR_RecMatchFilter/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 有关程序集的一般信息由以下
+// 控制。更改这些特性值可修改
+// 与程序集关联的信息。
+[assembly: AssemblyTitle("CY.AR_RecMatchFilter")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("CY.AR_RecMatchFilter")]
+[assembly: AssemblyCopyright("Copyright © 2024")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 将 ComVisible 设置为 false 会使此程序集中的类型
+//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
+//请将此类型的 ComVisible 特性设置为 true。
+[assembly: ComVisible(false)]
+
+// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
+[assembly: Guid("7822c382-d01d-41a5-a94a-4a953dd178a7")]
+
+// 程序集的版本信息由下列四个值组成:
+//
+// 主版本
+// 次版本
+// 生成号
+// 修订号
+//
+//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
+//通过使用 "*",如下所示:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/CY.AR_RecMatchFilter/RecSpecialEditEx.cs b/CY.AR_RecMatchFilter/RecSpecialEditEx.cs
new file mode 100644
index 0000000..22c3f4a
--- /dev/null
+++ b/CY.AR_RecMatchFilter/RecSpecialEditEx.cs
@@ -0,0 +1,498 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using Kingdee.BOS.Contracts;
+using Kingdee.BOS.Core.CommonFilter;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
+using Kingdee.BOS.Core.Metadata;
+using Kingdee.BOS.Core.Metadata.FieldElement;
+using Kingdee.BOS.Core.Permission;
+using Kingdee.BOS.JSON;
+using Kingdee.BOS.Orm.DataEntity;
+using Kingdee.BOS.Orm.Metadata.DataEntity;
+using Kingdee.BOS.Resource;
+using Kingdee.BOS.ServiceHelper;
+using Kingdee.BOS.Util;
+using Kingdee.K3.FIN.AP.ServiceHelper;
+using Kingdee.K3.FIN.Business.PlugIn.Match;
+using Kingdee.K3.FIN.Core;
+using Kingdee.K3.FIN.Core.Match;
+using Kingdee.K3.FIN.Core.Match.Object;
+using Kingdee.K3.FIN.Core.Object;
+using Kingdee.K3.FIN.ServiceHelper;
+using Newtonsoft.Json;
+using static Kingdee.K3.FIN.Core.Match.MatchBillFrom.BillEntryKey;
+
+namespace CY.AR_RecMatchFilter
+{
+ [Description("表单插件"), HotUpdate]
+ public class RecSpecialEditEx : SpecialStencilEdit
+ {
+ protected override string MatchType => "3";
+
+ protected override string TitelInfo => ResManager.LoadKDString("特殊业务核销主要处理异常业务的核销,例如:往来单位不同的单据间的核销;单据尾数的注销等。如果是正常的核销业务,请通过匹配条件核销进行。请确认是否要继续?", "003186000003556", (SubSystemType)4, new object[0]);
+
+ protected override string FilterFromId => "AR_RecMatchFilter";
+
+ protected override string MatchWizardFromId => "AR_Matck";
+
+ protected override string PermissonFormID => "AR_RecSpecial";
+
+ public RecSpecialEditEx()
+ {
+ SetFieldValue.Add("FTheMatchAmount", base.SetAmountValue);
+ SetFieldValue.Add("FMatchAmount", base.SetAmountValue);
+ SetFieldValue.Add("FMaxMatchAmount", base.SetAmountValue);
+ SetFieldValue.Add("FNOTMatchAmount", base.SetAmountValue);
+ SetFieldValue.Add("FWriteMatchAmount", base.SetAmountValue);
+ SetFieldValue.Add("FIVMATCHAMOUNTFOR", base.SetAmountValue);
+ AmountFields.Add("FTheMatchAmount");
+ AmountFields.Add("FMatchAmount");
+ AmountFields.Add("FMaxMatchAmount");
+ AmountFields.Add("FNOTMatchAmount");
+ AmountFields.Add("FWriteMatchAmount");
+ AmountFields.Add("FIVMATCHAMOUNTFOR");
+ sSystemFormID = "AR_SystemParameter";
+ sumField.Add("FSumAmount");
+ sumField.Add("FMatchSumAmount");
+ sumField.Add("FCurMatchSumAmount");
+ sumField.Add("FCurMatchSumAmountFor");
+ }
+
+ public override void DataChanged(DataChangedEventArgs e)
+ {
+ if (e.Field.Key.Equals("FTheIsMatch" + DebitSuffix))
+ {
+ SelectDataChanged(e.Row, DebitSuffix);
+ }
+ else if (e.Field.Key.Equals("FTheIsMatch" + CrebitSuffix))
+ {
+ SelectDataChanged(e.Row, CrebitSuffix);
+ }
+
+ string suffix = "";
+ if (e.Field.Key.Equals("FTheMatchAmount" + DebitSuffix) || e.Field.Key.Equals("FTheIsMatch" + DebitSuffix))
+ {
+ suffix = DebitSuffix;
+ }
+ else if (e.Field.Key.Equals("FTheMatchAmount" + CrebitSuffix) || e.Field.Key.Equals("FTheIsMatch" + CrebitSuffix))
+ {
+ suffix = CrebitSuffix;
+ }
+
+ switch (e.Field.Key.ToUpperInvariant())
+ {
+ case "FTHEISMATCHC":
+ case "FTHEISMATCHD":
+ SetTotalAmount(bolClear: false, suffix);
+ break;
+ case "FTHEMATCHAMOUNTC":
+ case "FTHEMATCHAMOUNTD":
+ SetTotalAmount(bolClear: false, suffix);
+ break;
+ }
+ }
+
+ private void SetTotalAmount(bool bolClear, string suffix)
+ {
+ decimal num = 0m;
+ decimal num2 = 0m;
+ decimal num3 = 0m;
+ decimal num4 = 0m;
+ short num5 = 0;
+ short num6 = 0;
+ string text = "";
+ if (!bolClear)
+ {
+ string text2 = "";
+ if (suffix == "C")
+ {
+ text2 = "FCreditEntry";
+ text = "FMatchAmount";
+ }
+ else
+ {
+ text2 = "FDebitEntry";
+ text = "FMatchAmount";
+ }
+
+ object obj = View.Model.DataObject[text2];
+ DynamicObjectCollection val = (DynamicObjectCollection)((obj is DynamicObjectCollection) ? obj : null);
+ if (val != null && ((Collection)(object)val).Count > 0)
+ {
+ foreach (DynamicObject item in (Collection)(object)val)
+ {
+ if (Convert.ToBoolean(item["FTheIsMatch" + suffix]))
+ {
+ decimal num7 = 0m;
+ decimal num8 = 0m;
+ decimal num9 = 0m;
+ decimal num10 = 0m;
+ decimal num11 = 0m;
+ decimal num12 = 0m;
+ short num13 = Convert.ToInt16(item["FAmountDigits" + suffix]);
+ num5 = ((num5 < num13) ? num13 : num5);
+ num7 = Convert.ToDecimal(item[text + suffix]);
+ num8 = Convert.ToDecimal(item["FWriteMatchAmount" + suffix]);
+ num9 = Convert.ToDecimal(item["FTheMatchAmount" + suffix]);
+ num10 = Convert.ToDecimal(item["FWRITTENOFFAMOUNT" + suffix]);
+ short num14 = Convert.ToInt16(item["FAmount_LCDigits" + suffix]);
+ num6 = ((num6 < num14) ? num14 : num6);
+ num11 = Convert.ToDecimal(item["FMatchAmountLocal" + suffix]);
+ bool flag = false;
+ if (num7 - num8 - num9 == 0m)
+ {
+ flag = true;
+ }
+
+ decimal num15 = Convert.ToDecimal(item["FEXCHANGERATE" + suffix]);
+ if (num15 == 0m)
+ {
+ num15 = num11 / num7;
+ }
+
+ num12 = (flag ? (num11 - num10) : (num9 * num15));
+ if (item["FSOURCEFORMID" + suffix].ToString().ToUpperInvariant().Equals("AP_REFUNDBILL") || item["FSOURCEFORMID" + suffix].ToString().ToUpperInvariant().Equals("AR_REFUNDBILL"))
+ {
+ num += num7 * -1m;
+ num2 += num8 * -1m;
+ num3 += num9 * -1m;
+ num4 -= num12;
+ }
+ else
+ {
+ num += num7;
+ num2 += num8;
+ num3 += num9;
+ num4 += num12;
+ }
+ }
+ }
+ }
+ }
+
+ DecimalFieldAppearance decimalfieldAppearance = (DecimalFieldAppearance)View.GetFieldEditor("FSumAmount" + suffix, 0).ControlAppearance;
+ View.StyleManager.SetScale(decimalfieldAppearance, num5);
+ View.Model.SetValue("FSumAmount" + suffix, num);
+ DecimalFieldAppearance decimalfieldAppearance2 = (DecimalFieldAppearance)View.GetFieldEditor("FMatchSumAmount" + suffix, 0).ControlAppearance;
+ View.StyleManager.SetScale(decimalfieldAppearance2, num5);
+ View.Model.SetValue("FMatchSumAmount" + suffix, num2);
+ DecimalFieldAppearance decimalfieldAppearance3 = (DecimalFieldAppearance)View.GetFieldEditor("FCurMatchSumAmount" + suffix, 0).ControlAppearance;
+ View.StyleManager.SetScale(decimalfieldAppearance3, num5);
+ View.Model.SetValue("FCurMatchSumAmount" + suffix, num3);
+ View.UpdateView("FSumAmount" + suffix);
+ View.UpdateView("FMatchSumAmount" + suffix);
+ View.UpdateView("FCurMatchSumAmount" + suffix);
+ if (View.OpenParameter.FormId == "AR_RecSpecial" || View.OpenParameter.FormId == "AP_PaySpecial")
+ {
+ DecimalFieldAppearance decimalfieldAppearance4 = (DecimalFieldAppearance)View.GetFieldEditor("FCurMatchSumAmountFor" + suffix, 0).ControlAppearance;
+ View.StyleManager.SetScale(decimalfieldAppearance4, num6);
+ View.Model.SetValue("FCurMatchSumAmountFor" + suffix, num4);
+ View.UpdateView("FCurMatchSumAmountFor" + suffix);
+ }
+ }
+
+ public override void BeforeUpdateValue(BeforeUpdateValueEventArgs e)
+ {
+ IsAllowSelected(e);
+ SetGenBussinessWhenBeforeUpdate(e);
+ string text = "";
+ if (e.Key.Equals("FTheMatchAmount" + DebitSuffix))
+ {
+ text = DebitSuffix;
+ e.Cancel = TheMatchDataChanged(e, text);
+ }
+ else if (e.Key.Equals("FTheMatchAmount" + CrebitSuffix))
+ {
+ text = CrebitSuffix;
+ e.Cancel = TheMatchDataChanged(e, text);
+ }
+ }
+
+ protected override void SetSumFieldValue(string entitySuffix, Dictionary datas)
+ {
+ }
+
+ protected override int FieldLocked(MatchFieldConfig fieldConfig)
+ {
+ if (fieldConfig.FieldName.Equals("FTheIsMatch", StringComparison.OrdinalIgnoreCase) || fieldConfig.FieldName.Equals("FTheMatchAmount", StringComparison.OrdinalIgnoreCase) || fieldConfig.FieldName.Equals("FAbstract", StringComparison.OrdinalIgnoreCase))
+ {
+ return 0;
+ }
+
+ return base.FieldLocked(fieldConfig);
+ }
+
+ protected override int FireUpdateEvent(MatchFieldConfig fieldConfig)
+ {
+ if (fieldConfig.FieldName.Equals("FTheIsMatch", StringComparison.OrdinalIgnoreCase) || fieldConfig.FieldName.Equals("FTheMatchAmount", StringComparison.OrdinalIgnoreCase))
+ {
+ return 1;
+ }
+
+ return base.FireUpdateEvent(fieldConfig);
+ }
+
+ protected override void ResultRowData(MatchBillData data, DynamicObject enrtyData, string suffix)
+ {
+ data.FieldValues["FTheMatchAmount"] = enrtyData["FTheMatchAmount" + suffix];
+ data.FieldValues["FMaxMatchAmount"] = enrtyData["FMaxMatchAmount" + suffix];
+ }
+
+ protected override void SelectReverse(MatchBillData data)
+ {
+ data.FieldValues["FTheIsMatch"] = "0";
+ data.FieldValues["FTheMatchAmount"] = 0;
+ data.FieldValues["FMaxMatchAmount"] = data.FieldValues["FWriteMatchAmount"];
+ }
+
+ private void SelectDataChanged(int row, string suffix)
+ {
+ decimal num = Convert.ToDecimal(View.Model.GetValue("FMatchAmount" + suffix, row));
+ decimal num2 = Convert.ToDecimal(View.Model.GetValue("FWriteMatchAmount" + suffix, row));
+ if (Convert.ToBoolean(View.Model.GetValue("FTheIsMatch" + suffix, row)))
+ {
+ View.Model.SetValue("FTheMatchAmount" + suffix, num - num2, row);
+ View.Model.SetValue("FMaxMatchAmount" + suffix, num, row);
+ }
+ else
+ {
+ View.Model.SetValue("FTheMatchAmount" + suffix, 0, row);
+ View.Model.SetValue("FMaxMatchAmount" + suffix, num2, row);
+ }
+ }
+
+ private bool TheMatchDataChanged(BeforeUpdateValueEventArgs e, string suffix)
+ {
+ if (Convert.ToString(e.Key).Equals(FGenDate))
+ {
+ return e.Cancel;
+ }
+
+ decimal num = Convert.ToDecimal(View.Model.GetValue("FMatchAmount" + suffix, e.Row));
+ decimal num2 = Convert.ToDecimal(View.Model.GetValue("FWriteMatchAmount" + suffix, e.Row));
+ decimal num3 = num - num2;
+ decimal num4 = Convert.ToDecimal(e.Value);
+ if (num4 == 0m)
+ {
+ View.Model.SetValue("FTheIsMatch" + suffix, false, e.Row);
+ }
+ else
+ {
+ View.Model.SetValue("FTheIsMatch" + suffix, true, e.Row);
+ if (num > 0m && (num4 > num3 || num4 < 0m))
+ {
+ View.ShowMessage(ResManager.LoadKDString("本次核销金额不能大于未核销金额并且不能小于0!", "003186000003559", (SubSystemType)4, new object[0]));
+ return true;
+ }
+
+ if (num < 0m && (num4 < num3 || num4 > 0m))
+ {
+ View.ShowMessage(ResManager.LoadKDString("本次核销金额不能小于未核销金额并且不能大于0!", "003186000003562", (SubSystemType)4, new object[0]));
+ return true;
+ }
+ }
+
+ View.Model.SetValue("FMaxMatchAmount" + suffix, num4 + num2, e.Row);
+ return false;
+ }
+
+ public override void AfterBindData(EventArgs e)
+ {
+ base.AfterBindData(e);
+ GetStartDateAndCloseDateInfo();
+ }
+
+ public override void BarItemClick(BarItemClickEventArgs e)
+ {
+ switch (e.BarItemKey)
+ {
+ case "tbVerify":
+ if (!CheckPermission("580dcd5cb8fbca"))
+ {
+ View.ShowMessage(ResManager.LoadKDString("没有手工核销的权限", "003192000038640", (SubSystemType)4, new object[0]));
+ return;
+ }
+
+ break;
+ case "tbVerifyS":
+ if (!CheckPermission("580dcd73b8fbcc"))
+ {
+ View.ShowMessage(ResManager.LoadKDString("没有特殊核销的权限", "003192000038641", (SubSystemType)4, new object[0]));
+ return;
+ }
+
+ break;
+ case "tbBDHandle":
+ if (!CheckPermission("5e0ead240e5818"))
+ {
+ View.ShowMessage(ResManager.LoadKDString("没有坏账核销的权限", "003186000022353", (SubSystemType)4, new object[0]));
+ return;
+ }
+
+ break;
+ }
+
+ base.BarItemClick(e);
+ }
+
+ private bool CheckPermission(string permissionItem)
+ {
+ List list = new List();
+ HashSet hashSet = new HashSet();
+ if (base.DebitDate != null)
+ {
+ object obj = View.Model.DataObject[DebitEntryKey];
+ DynamicObjectCollection val = (DynamicObjectCollection)((obj is DynamicObjectCollection) ? obj : null);
+ if (val != null)
+ {
+ foreach (DynamicObject item in (Collection)(object)val)
+ {
+ long key = Convert.ToInt64(item["FEntryId" + DebitSuffix]);
+ if (Convert.ToBoolean(item["FTheIsMatch" + DebitSuffix]))
+ {
+ hashSet.Add(base.DebitDate[key].SettOrgId);
+ }
+ }
+ }
+ }
+
+ if (base.CrebitDate != null)
+ {
+ object obj2 = View.Model.DataObject[CreditEntryKey];
+ DynamicObjectCollection val = (DynamicObjectCollection)((obj2 is DynamicObjectCollection) ? obj2 : null);
+ if (val != null)
+ {
+ foreach (DynamicObject item2 in (Collection)(object)val)
+ {
+ long key2 = Convert.ToInt64(item2["FEntryId" + CrebitSuffix]);
+ if (Convert.ToBoolean(item2["FTheIsMatch" + CrebitSuffix]))
+ {
+ hashSet.Add(base.CrebitDate[key2].SettOrgId);
+ }
+ }
+ }
+ }
+
+ if (hashSet.Count > 0)
+ {
+ foreach (long item3 in hashSet)
+ {
+ BusinessObject businessObject = new BusinessObject(item3);
+ businessObject.Id = View.BillBusinessInfo.GetForm().Id;
+ list.Add(businessObject);
+ }
+ }
+ else
+ {
+ BusinessObject businessObject = new BusinessObject();
+ businessObject.Id = View.BillBusinessInfo.GetForm().Id;
+ list.Add(businessObject);
+ }
+
+ List list2 = PermissionServiceHelper.FuncPermissionAuth(View.Context, (IEnumerable)list, permissionItem);
+ bool result = true;
+ foreach (PermissionAuthResult item4 in list2)
+ {
+ if (!item4.Passed)
+ {
+ result = false;
+ break;
+ }
+ }
+
+ return result;
+ }
+
+ private void GetStartDateAndCloseDateInfo()
+ {
+ DynamicObjectCollection lastestCloseAcctDate = ClosingAccountServiceHelper.GetLastestCloseAcctDate(base.Context, lstSettlesOrgPermissionIDs, "AR");
+ foreach (DynamicObject item in (Collection)(object)lastestCloseAcctDate)
+ {
+ BillExtension.AddWithoutExists((IDictionary)CloseDateInfos, Convert.ToInt64(item["FOrgID"]), Convert.ToDateTime(item["FEndDate"]));
+ }
+
+ DynamicObjectCollection paramterByCtgOrgAcct = CommonServiceHelper.GetParamterByCtgOrgAcct(base.Context, "AR", 0L, lstSettlesOrgPermissionIDs, "ARStartDate");
+ foreach (DynamicObject item2 in (Collection)(object)paramterByCtgOrgAcct)
+ {
+ BillExtension.AddWithoutExists((IDictionary)StartDateInfos, Convert.ToInt64(item2["FOrgID"]), Convert.ToDateTime(item2["FValue"]));
+ }
+
+ SetDateValueForOrgID();
+ }
+
+ protected override void GetBillData(string billDirection, FilterParameter filterPara)
+ {
+ base.GetBillData(billDirection, filterPara);
+
+ //IMatchService service = ServiceFactory.GetService(this.Context);
+ }
+
+ protected override void ShowFilterBill(string billDirection)
+ {
+ base.ShowFilterBill(billDirection);
+ }
+
+ protected override void RefreshBillData(string billDirection, FilterParameter filterPara)
+ {
+ var filter = filterPara.CustomFilter;
+ var isHandlingGroupCustomer = IsHandlingGroupCustomer(filter);
+ var jsonStr = JsonConvert.SerializeObject(filterPara);
+ IEnumerable enumerable = from DynamicProperty dp in filter.DynamicObjectType.Properties
+ where (dp.Name.EndsWith("From", StringComparison.InvariantCultureIgnoreCase) || dp.Name.EndsWith("To", StringComparison.InvariantCultureIgnoreCase)) && (!isHandlingGroupCustomer || (isHandlingGroupCustomer && dp.Name != "FCONTACTUNITFrom" && dp.Name != "FCONTACTUNITTo"))
+ select dp;
+ //Dictionary fieldValues = this.FieldNames.BillEntrys["Head"].FieldValues;
+ IMetaDataService service = ServiceFactory.GetService(this.Context);
+ FormMetadata formMetadata = (FormMetadata)service.Load(this.Context, this.FilterFromId, true);
+ foreach (DynamicProperty dynamicProperty in enumerable)
+ {
+ object obj = filter[dynamicProperty];
+ Field field = formMetadata.BusinessInfo.GetField(dynamicProperty.Name);
+ //if (fieldValues.Any((KeyValuePair p) => p.Key.Equals(field.FieldName, StringComparison.OrdinalIgnoreCase))
+ // && (!flag || (!field.Key.ToUpperInvariant().Equals("FCONTACTUNITFROM") && !field.Key.ToUpperInvariant().Equals("FCONTACTUNITTO"))))
+ //{
+ // MatchBillFrom.BillEntryKey.FieldValue fieldValue = fieldValues[field.FieldName];
+ // if (!string.IsNullOrWhiteSpace(fieldValue.FieldKey))
+ // {
+ // if (obj is DynamicObject)
+ // {
+ // string text3 = (obj as DynamicObject)["Number"] as string;
+ // if (!string.IsNullOrEmpty(text3))
+ // {
+ // if (dynamicProperty.Name.IndexOf("From") > 0)
+ // {
+ // stringBuilder.AppendFormat(" and {0}.FNumber >= '" + text3 + "'", fieldValue.FieldKey);
+ // }
+ // else if (dynamicProperty.Name.IndexOf("To") > 0)
+ // {
+ // stringBuilder.AppendFormat(" and {0}.FNumber <= '" + text3 + "'", fieldValue.FieldKey);
+ // }
+ // }
+ // }
+ // else if (obj is DateTime)
+ // {
+ // if (dynamicProperty.Name.IndexOf("From") > 0 && Convert.ToDateTime(obj) > DateTime.MinValue && Convert.ToDateTime(obj) < DateTime.MaxValue)
+ // {
+ // stringBuilder.AppendFormat(" and {0} >= {1} ", fieldValue.FieldKey, "{ts'" + obj.ToString() + "'}");
+ // }
+ // else if (dynamicProperty.Name.IndexOf("To") > 0 && Convert.ToDateTime(obj) > DateTime.MinValue && Convert.ToDateTime(obj) < DateTime.MaxValue)
+ // {
+ // stringBuilder.AppendFormat(" and {0} <= {1} ", fieldValue.FieldKey, "{ts'" + obj.ToString() + "'}");
+ // }
+ // }
+ // }
+ //}
+ }
+ base.RefreshBillData(billDirection, filterPara);
+ }
+
+ public bool IsHandlingGroupCustomer(DynamicObject filter)
+ {
+ return filter.DynamicObjectType.Properties.Contains("FCONTACTUNITTYPE") && string.Equals(Convert.ToString(filter["FCONTACTUNITTYPE"]), "BD_Customer", StringComparison.OrdinalIgnoreCase) && filter.DynamicObjectType.Properties.Contains("FGroupCustomer") && Convert.ToBoolean(filter["FGroupCustomer"]) && filter.DynamicObjectType.Properties.Contains("FCONTACTUNITFrom") && filter.DynamicObjectType.Properties.Contains("FCONTACTUNITTo");
+ }
+ }
+}
diff --git a/CY.AR_RecMatchFilter/SpecialStencilEditEx.cs b/CY.AR_RecMatchFilter/SpecialStencilEditEx.cs
new file mode 100644
index 0000000..a4b1c52
--- /dev/null
+++ b/CY.AR_RecMatchFilter/SpecialStencilEditEx.cs
@@ -0,0 +1,2308 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using Kingdee.BOS;
+using Kingdee.BOS.Contracts;
+using Kingdee.BOS.Core.CommonFilter;
+using Kingdee.BOS.Core.DynamicForm;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
+using Kingdee.BOS.Core.Metadata;
+using Kingdee.BOS.Core.Metadata.ControlElement;
+using Kingdee.BOS.Core.Metadata.FieldElement;
+using Kingdee.BOS.Core.Metadata.FormElement;
+using Kingdee.BOS.Core.NetworkCtrl;
+using Kingdee.BOS.Core.Permission.Objects;
+using Kingdee.BOS.Core.SqlBuilder;
+using Kingdee.BOS.Core.Validation;
+using Kingdee.BOS.JSON;
+using Kingdee.BOS.Model.CommonFilter;
+using Kingdee.BOS.Orm.DataEntity;
+using Kingdee.BOS.Orm.Metadata.DataEntity;
+using Kingdee.BOS.Resource;
+using Kingdee.BOS.ServiceHelper;
+using Kingdee.BOS.Util;
+using Kingdee.BOS.VerificationHelper;
+using Kingdee.K3.FIN.Core;
+using Kingdee.K3.FIN.Core.Match;
+using Kingdee.K3.FIN.Core.Match.Object;
+using Kingdee.K3.FIN.Core.Object;
+using Kingdee.K3.FIN.Core.Object.ARAP;
+using Kingdee.K3.FIN.Core.Parameters;
+using Kingdee.K3.FIN.ServiceHelper;
+using System.Data;
+using Kingdee.K3.FIN.Contracts;
+using ServiceFactory = Kingdee.K3.FIN.Contracts.ServiceFactory;
+using IPermissionService = Kingdee.BOS.Contracts.IPermissionService;
+
+namespace Kingdee.K3.FIN.Business.PlugIn.Match
+{
+
+
+
+ [Description("特殊业务核销模版")]
+ public class SpecialStencilEditEx : MatchPublicBillEdit
+ {
+ private Dictionary> _dictField;
+
+ private Dictionary> _dictFieldApp;
+
+ private BusinessInfo _businessInfo;
+
+ private LayoutInfo _layoutInfo;
+
+ private Dictionary _debitData;
+
+ private Dictionary _creditData;
+
+ public DateTime _DebitDataTime = DateTime.Now;
+
+ public DateTime _CreditDataTime = DateTime.Now;
+
+ private FilterParameter _debitFilterPara;
+
+ private FilterParameter _creditFilterPara;
+
+ private FormOperation formOperation;
+
+ private List networkCtrlResults;
+
+ private DateTime _maxDate = default(DateTime);
+
+ private bool _isDifCurrency;
+
+ private long lMethodID;
+
+ private CheckResult CheckResult;
+
+ private Dictionary temptable = new Dictionary();
+
+ private List FormIds = new List { "AP_PAYBILL", "AP_REFUNDBILL", "AR_RECEIVEBILL", "AR_REFUNDBILL" };
+
+ protected string MatchScheme = "FMatchScheme";
+
+ public long SelectedSchemeId;
+
+ public bool setMatchScheme;
+
+ protected string DebitEntryKey = "FDebitEntry";
+
+ protected string CreditEntryKey = "FCreditEntry";
+
+ protected string DebitSuffix = "D";
+
+ protected string CrebitSuffix = "C";
+
+ protected MatchFieldConfig[] Configs;
+
+ protected List lstOrgPermisinfosAll;
+
+ protected DynamicObjectCollection permissionOrgSettleInfos;
+
+ protected List lstSettlesOrgPermissionIDs;
+
+ protected Dictionary CloseDateInfos = new Dictionary();
+
+ protected Dictionary StartDateInfos = new Dictionary();
+
+ private Dictionary _closeDateValueByOrgID = new Dictionary();
+
+ protected string FGenDate = "FGenDate";
+
+ protected string sSystemFormID = string.Empty;
+
+ private Dictionary orgMatchRangeFromDic;
+
+ private Dictionary orgMatchRangeToDic;
+
+ private Dictionary orgIdRangeInfo;
+
+ private StringBuilder sbMessage;
+
+ private bool isRefresh;
+
+ private bool firstEntry = true;
+
+ protected bool isBadDebt;
+
+ public bool IsDifCurrency
+ {
+ get
+ {
+ return _isDifCurrency;
+ }
+ set
+ {
+ _isDifCurrency = value;
+ }
+ }
+
+ protected virtual string TitelInfo => ResManager.LoadKDString("特殊业务核销主要处理异常业务的核销,例如:数量不同的单据间的核销;单据尾数的注销等。如果是正常的核销业务,请通过匹配条件核销进行。请确认是否要继续?", "003192000009376", SubSystemType.FIN);
+
+ protected Dictionary DebitDate
+ {
+ get
+ {
+ return _debitData;
+ }
+ set
+ {
+ _debitData = value;
+ }
+ }
+
+ protected Dictionary CrebitDate
+ {
+ get
+ {
+ return _creditData;
+ }
+ set
+ {
+ _creditData = value;
+ }
+ }
+
+ protected FilterParameter DebitFilterPara
+ {
+ get
+ {
+ return _debitFilterPara;
+ }
+ set
+ {
+ _debitFilterPara = value;
+ }
+ }
+
+ protected FilterParameter CreditFilterPara
+ {
+ get
+ {
+ return _creditFilterPara;
+ }
+ set
+ {
+ _creditFilterPara = value;
+ }
+ }
+
+ protected virtual string FilterFromId => "AP_PayMatchFilter";
+
+ protected virtual string MatchWizardFromId => "AP_PayMatck";
+
+ protected virtual string MatchBillSelect => "AP_MatchBillSelect";
+
+ protected virtual string PermissonFormID => "AP_PaySpecial";
+
+ public DateTime MaxDate
+ {
+ get
+ {
+ return _maxDate;
+ }
+ set
+ {
+ _maxDate = value;
+ }
+ }
+
+ protected Dictionary SetCloseDateValueByOrgID
+ {
+ get
+ {
+ return _closeDateValueByOrgID;
+ }
+ set
+ {
+ _closeDateValueByOrgID = value;
+ }
+ }
+
+ protected DateTime MinGenBussinessDate { get; set; }
+
+ public SpecialStencilEditEx()
+ {
+ AmountFields.Add("FALLAMOUNTFOR");
+ AmountFields.Add("FNOTAXAMOUNT");
+ AmountFields.Add("FMATCHNOTAXAMOUNT");
+ AmountFields.Add("FHADMATCHAMOUNTFOR");
+ AmountFields.Add("FSPECIALAMOUNTFOR");
+ QTYFields.Add("FVALUATIONQTY");
+ QTYFields.Add("FSPECIALQTY");
+ Suffixs.Add(DebitSuffix);
+ Suffixs.Add(CrebitSuffix);
+ SetFieldValue.Add("FALLAMOUNTFOR", base.SetAmountValue);
+ SetFieldValue.Add("FVALUATIONQTY", base.SetQtyValue);
+ SetFieldValue.Add("FNOTAXAMOUNT", base.SetAmountValue);
+ SetFieldValue.Add("FMATCHNOTAXAMOUNT", base.SetAmountValue);
+ SetFieldValue.Add("FHADMATCHAMOUNTFOR", base.SetAmountValue);
+ SetFieldValue.Add("FSPECIALQTY", base.SetQtyValue);
+ SetFieldValue.Add("FSPECIALAMOUNTFOR", base.SetAmountValue);
+ }
+
+ public override void PreOpenForm(PreOpenFormEventArgs e)
+ {
+ base.PreOpenForm(e);
+ string text = "";
+ if (e.OpenParameter != null && e.OpenParameter.FormMetaData != null && e.OpenParameter.FormMetaData.BusinessInfo != null && e.OpenParameter.FormMetaData.BusinessInfo.GetForm() != null && e.OpenParameter.FormMetaData.BusinessInfo.GetForm().Name != null)
+ {
+ text = e.OpenParameter.FormMetaData.BusinessInfo.GetForm().Name.ToString();
+ }
+
+ LicenseVerifier.CheckViewOnlyOperation(e.Context, text);
+ }
+
+ public override void BeforeBindData(EventArgs e)
+ {
+ string id = View.Model.BusinessInfo.GetForm().Id;
+ if (firstEntry)
+ {
+ firstEntry = false;
+ FilterParameter filterParameter;
+ if ((id == "AR_RecSpecial" || id == "AR_BadDebtLossHandleList") && Convert.ToString(View.OpenParameter.GetCustomParameter("isBeInvoked")) == "1")
+ {
+ filterParameter = new FilterParameter();
+ DynamicObject dynamicObject = new DynamicObject((MetaDataServiceHelper.Load(base.Context, "AR_RecMatchFilter") as FormMetadata).BusinessInfo.GetDynamicObjectType());
+ dynamicObject["FSETTLEORGID"] = View.OpenParameter.GetCustomParameter("settleOrgID");
+ dynamicObject["FBillSelect"] = "AR_OtherRecAble,AR_receivable";
+ string formID = (string)(dynamicObject["FCONTACTUNITTYPE"] = Convert.ToString(View.OpenParameter.GetCustomParameter("contactUnitType")));
+ string value = Convert.ToString(View.OpenParameter.GetCustomParameter("currencyID"));
+ DynamicObject dynamicObject2 = GetDynamicObject("BD_Currency");
+ dynamicObject2["Id"] = value;
+ dynamicObject2["Number"] = View.OpenParameter.GetCustomParameter("currencyNumber");
+ dynamicObject["FCurrencyFrom_Id"] = value;
+ dynamicObject["FCurrencyFrom"] = dynamicObject2;
+ dynamicObject["FCurrencyTo_Id"] = value;
+ dynamicObject["FCurrencyTo"] = dynamicObject2;
+ string s = Convert.ToString(View.OpenParameter.GetCustomParameter("dateFrom"));
+ dynamicObject["FDateFrom"] = (DateTime.TryParse(s, out var result) ? result : DateTime.Now.Date);
+ if (id == "AR_RecSpecial")
+ {
+ dynamicObject["FMULCONTACT"] = 1;
+ dynamicObject["FCONTACTUNITMUL"] = View.OpenParameter.GetCustomParameter("contactUnit");
+ }
+ else
+ {
+ DynamicObject dynamicObject3 = GetDynamicObject(formID);
+ dynamicObject3["Number"] = View.OpenParameter.GetCustomParameter("contactUnit");
+ dynamicObject["FCONTACTUNITFrom"] = dynamicObject3;
+ dynamicObject["FCONTACTUNITTo"] = dynamicObject3;
+ }
+
+ filterParameter.CustomFilter = dynamicObject;
+ }
+ else
+ {
+ filterParameter = GetDefaultFilterParamer(id);
+ }
+
+ if (!filterParameter.IsNullOrEmptyOrWhiteSpace())
+ {
+ DivFilter(View.Model.BusinessInfo.GetForm().Id, filterParameter);
+ }
+ }
+
+ if (isRefresh)
+ {
+ if (DebitFilterPara != null)
+ {
+ HideColoumByFilter("1");
+ }
+
+ if (CreditFilterPara != null)
+ {
+ HideColoumByFilter("-1");
+ }
+ }
+
+ formOperation = MatchServiceHelper.GetMatchFormOperation(View.Context, View.Model.BusinessInfo.GetForm().Id);
+ string permissionItemId = "59c5e82ba0344251b3a27d24f7627ea5";
+ if (id == "AR_RecSpecial" || id == "AP_PaySpecial")
+ {
+ permissionItemId = "6e44119a58cb4a8e86f6c385e14a17ad";
+ }
+
+ lstOrgPermisinfosAll = CommonServiceHelper.GetPermissionOrgIdList(base.Context, PermissonFormID, permissionItemId);
+ permissionOrgSettleInfos = GetOrganization(View.Context, lstOrgPermisinfosAll);
+ lstSettlesOrgPermissionIDs = GetSettleOrgsPermissonValue();
+ if (View.BusinessInfo.GetForm().Id == "AR_BadDebtLossHandleList" && View.BusinessInfo.ContainsKey("FPURPOSEIDD"))
+ {
+ View.GetControl("FPURPOSEIDD").Visible = false;
+ }
+
+ if (!setMatchScheme)
+ {
+ SetMatchScheme();
+ }
+ }
+
+ private void SetMatchScheme()
+ {
+ setMatchScheme = true;
+ FormMetadata formMetadata = MetaDataServiceHelper.Load(base.Context, MatchWizardFromId) as FormMetadata;
+ IUserParameterService service = ServiceFactory.GetService(base.Context);
+ DynamicObject dynamicObject = service.Load(base.Context, formMetadata.BusinessInfo, base.Context.UserId, MatchWizardFromId, "");
+ if (dynamicObject != null)
+ {
+ Ap_AutoMatchStencil ap_AutoMatchStencil = dynamicObject;
+ IEnumerable source = from r in ap_AutoMatchStencil.FMatchSchemeEntryList
+ where r.FSelectScheme
+ select r.FMatchSchemeID_Id;
+ if (source.Count() > 0)
+ {
+ View.Model.SetValue(MatchScheme, source.Min());
+ }
+ }
+ }
+
+ private void DivFilter(string formid, FilterParameter InitFilter)
+ {
+ string text = InitFilter.CustomFilter["FBillSelect"].ToString();
+ FilterParameter filterParameter = ObjectUtils.CreateCopy(InitFilter) as FilterParameter;
+ switch (formid)
+ {
+ case "AR_RecSpecial":
+ if (text.Contains("AR_OtherRecAble") || text.Contains("AR_receivable"))
+ {
+ InitFilter.CustomFilter["FBillSelect"] = text;
+ RefreshBillDataFliter("1", InitFilter);
+ filterParameter.CustomFilter["FBillSelect"] = "AR_RECEIVEBILL,AR_REFUNDBILL";
+ RefreshBillDataFliter("-1", filterParameter);
+ }
+ else
+ {
+ InitFilter.CustomFilter["FBillSelect"] = "AR_OtherRecAble,AR_receivable";
+ RefreshBillDataFliter("1", InitFilter);
+ filterParameter.CustomFilter["FBillSelect"] = text;
+ RefreshBillDataFliter("-1", filterParameter);
+ }
+
+ break;
+ case "AP_BillingSpecial":
+ if (text.Contains("AP_Payable"))
+ {
+ InitFilter.CustomFilter["FBillSelect"] = text;
+ RefreshBillDataFliter("1", InitFilter);
+ filterParameter.CustomFilter["FBillSelect"] = "IV_PURCHASEIC,IV_PURCHASEOC,IV_PUREXPINV,IV_PUREXVATIN";
+ RefreshBillDataFliter("-1", filterParameter);
+ }
+ else
+ {
+ InitFilter.CustomFilter["FBillSelect"] = "AP_Payable";
+ RefreshBillDataFliter("1", InitFilter);
+ filterParameter.CustomFilter["FBillSelect"] = text;
+ RefreshBillDataFliter("-1", filterParameter);
+ }
+
+ break;
+ case "AP_PaySpecial":
+ if (text.Contains("AP_OtherPayable") || text.Contains("AP_Payable"))
+ {
+ InitFilter.CustomFilter["FBillSelect"] = text;
+ RefreshBillDataFliter("1", InitFilter);
+ filterParameter.CustomFilter["FBillSelect"] = "AP_PAYBILL,AP_REFUNDBILL";
+ RefreshBillDataFliter("-1", filterParameter);
+ }
+ else
+ {
+ InitFilter.CustomFilter["FBillSelect"] = "AP_OtherPayable,AP_Payable";
+ RefreshBillDataFliter("1", InitFilter);
+ filterParameter.CustomFilter["FBillSelect"] = text;
+ RefreshBillDataFliter("-1", filterParameter);
+ }
+
+ break;
+ case "AR_BillingSpecial":
+ if (text.Contains("AR_receivable"))
+ {
+ InitFilter.CustomFilter["FBillSelect"] = text;
+ RefreshBillDataFliter("1", InitFilter);
+ filterParameter.CustomFilter["FBillSelect"] = "IV_SALEEXINV,IV_SALEEXVATIN,IV_SALESIC,IV_SALESOC";
+ RefreshBillDataFliter("-1", filterParameter);
+ }
+ else
+ {
+ InitFilter.CustomFilter["FBillSelect"] = "AR_receivable";
+ RefreshBillDataFliter("1", InitFilter);
+ filterParameter.CustomFilter["FBillSelect"] = text;
+ RefreshBillDataFliter("-1", filterParameter);
+ }
+
+ break;
+ case "AR_BadDebtLossHandleList":
+ InitFilter.CustomFilter["FBillSelect"] = "AR_OtherRecAble,AR_receivable";
+ RefreshBillDataFliter("1", InitFilter);
+ break;
+ }
+ }
+
+ private FilterParameter GetDefaultFilterParamer(string formid)
+ {
+ //IL_0006: Unknown result type (might be due to invalid IL or missing references)
+ //IL_000c: Expected O, but got Unknown
+ FilterModel val = new FilterModel(base.Context);
+ FormMetadata formMetadata = null;
+ switch (formid)
+ {
+ case "AR_RecSpecial":
+ formMetadata = MetaDataServiceHelper.Load(base.Context, "AR_RecMatchFilter") as FormMetadata;
+ break;
+ case "AP_BillingSpecial":
+ formMetadata = MetaDataServiceHelper.Load(base.Context, "AP_BillingMatchFilter") as FormMetadata;
+ break;
+ case "AP_PaySpecial":
+ formMetadata = MetaDataServiceHelper.Load(base.Context, "AP_PayMatchFilter") as FormMetadata;
+ break;
+ case "AR_BillingSpecial":
+ formMetadata = MetaDataServiceHelper.Load(base.Context, "AR_BillingMatchFilter") as FormMetadata;
+ break;
+ case "AR_BadDebtLossHandleList":
+ formMetadata = MetaDataServiceHelper.Load(base.Context, "AR_BadDebtLossFilter") as FormMetadata;
+ break;
+ default:
+ return null;
+ }
+
+ BusinessInfo businessInfo = formMetadata.BusinessInfo;
+ ((AbstractDynamicFormModel)(object)val).SetContext(base.Context, businessInfo, (IResourceServiceProvider)null);
+ val.FormId = formid;
+ val.GetSchemeList();
+ FilterScheme nextDirectEnterScheme = val.GetNextDirectEnterScheme();
+ FilterParameter result = SetTransferFilter(businessInfo);
+ if (nextDirectEnterScheme == null || nextDirectEnterScheme.IsDefault)
+ {
+ return result;
+ }
+
+ val.Load(nextDirectEnterScheme.Id);
+ FilterParameter filterParameter = val.GetFilterParameter();
+ if (!View.OpenParameter.GetCustomParameter("FTransfer").IsNullOrEmptyOrWhiteSpace())
+ {
+ return result;
+ }
+
+ return filterParameter;
+ }
+
+ private FilterParameter SetTransferFilter(BusinessInfo info)
+ {
+ FilterParameter filterParameter = null;
+ if (!View.OpenParameter.GetCustomParameter("FTransfer").IsNullOrEmptyOrWhiteSpace())
+ {
+ filterParameter = new FilterParameter();
+ DynamicObject dynamicObject = new DynamicObject(info.GetDynamicObjectType());
+ dynamicObject["FBillSelect"] = View.OpenParameter.GetCustomParameter("FBillSelect");
+ dynamicObject["FSETTLEORGID"] = View.OpenParameter.GetCustomParameter("FSETTLEORGID");
+ dynamicObject["FBillNoTo"] = View.OpenParameter.GetCustomParameter("FBillNoTo");
+ dynamicObject["FBillNoFrom"] = View.OpenParameter.GetCustomParameter("FBillNoFrom");
+ filterParameter.CustomFilter = dynamicObject;
+ }
+
+ return filterParameter;
+ }
+
+ public Field CloneBaseField(string fieldKey, string entryKey, string suffix, MatchFieldConfig fieldConfig)
+ {
+ Field field = (Field)_businessInfo.GetField(fieldKey).Clone();
+ field.EntityKey = entryKey;
+ LocaleValue localeValue = new LocaleValue();
+ foreach (MatchFieldConfigLocale langInfo in fieldConfig.LangInfos)
+ {
+ localeValue.Add(new KeyValuePair(langInfo.LocalId, langInfo.Name));
+ }
+
+ field.Name = localeValue;
+ field.FieldName = fieldConfig.FieldName;
+ field.FireUpdateEvent = FireUpdateEvent(fieldConfig);
+ field.Key = fieldConfig.FieldName + suffix;
+ field.PropertyName = fieldConfig.FieldName + suffix;
+ return field;
+ }
+
+ public FieldAppearance CloneBaseFieldApp(string fieldKey, string entryKey, string suffix, MatchFieldConfig fieldConfig)
+ {
+ FieldAppearance fieldAppearance = (FieldAppearance)_layoutInfo.GetFieldAppearance(fieldKey).Clone();
+ fieldAppearance.EntityKey = entryKey;
+ LocaleValue localeValue = new LocaleValue();
+ LocaleValue localeValue2 = new LocaleValue();
+ foreach (MatchFieldConfigLocale langInfo in fieldConfig.LangInfos)
+ {
+ localeValue.Add(new KeyValuePair(langInfo.LocalId, langInfo.Name));
+ localeValue2.Add(new KeyValuePair(langInfo.LocalId, fieldConfig.Width.ToString()));
+ }
+
+ fieldAppearance.Caption = localeValue;
+ fieldAppearance.Width = localeValue2;
+ fieldAppearance.Locked = FieldLocked(fieldConfig);
+ fieldAppearance.Visible = (fieldConfig.IsShowSpecial.Equals("1") ? (-1) : 29);
+ fieldAppearance.Key = fieldConfig.FieldName + suffix;
+ fieldAppearance.Field = _businessInfo.GetField(fieldAppearance.Key);
+ return fieldAppearance;
+ }
+
+ public List VisiableField()
+ {
+ List list = new List();
+ list.Add("FJOINBILLENTRYID");
+ list.Add("FJOINBILLFID");
+ list.Add("FJOINRECBILL");
+ list.Add("FJOINRECEIVBILLNO");
+ return list;
+ }
+
+ public override void OnSetBusinessInfo(SetBusinessInfoArgs e)
+ {
+ MatchFieldConfig[] matchFieldConfigs = MatchServiceHelper.GetMatchFieldConfigs(View.Context, $"FMatchType = '{MatchType}' ");
+ Configs = matchFieldConfigs.OrderBy((MatchFieldConfig r) => r.ShowSeq).ToArray();
+ _dictField = new Dictionary>(StringComparer.OrdinalIgnoreCase);
+ _dictField.Add("1", CreateIntField);
+ _dictField.Add("2", CreateTextField);
+ _dictField.Add("3", CreateDateField);
+ _dictField.Add("4", CreateBooleanField);
+ _dictField.Add("5", CreateDecimalField);
+ _dictField.Add("6", CreateDateTimeField);
+ _businessInfo = (BusinessInfo)ObjectUtils.CreateCopy(View.OpenParameter.FormMetaData.BusinessInfo);
+ _businessInfo.Add(CreateIntField(DebitEntryKey, "FEntryId"));
+ _businessInfo.Add(CreateIntField(CreditEntryKey, "FEntryId"));
+ MatchFieldConfig[] configs = Configs;
+ foreach (MatchFieldConfig matchFieldConfig in configs)
+ {
+ if (!VisiableField().Contains(matchFieldConfig.FieldName))
+ {
+ if (showBaseField.Contains(matchFieldConfig.FieldName))
+ {
+ _businessInfo.Add(CloneBaseField(matchFieldConfig.FieldName, DebitEntryKey, DebitSuffix, matchFieldConfig));
+ _businessInfo.Add(CloneBaseField(matchFieldConfig.FieldName, CreditEntryKey, CrebitSuffix, matchFieldConfig));
+ }
+ else
+ {
+ _businessInfo.Add(_dictField[matchFieldConfig.FieldType](DebitEntryKey, matchFieldConfig));
+ _businessInfo.Add(_dictField[matchFieldConfig.FieldType](CreditEntryKey, matchFieldConfig));
+ }
+ }
+ }
+
+ foreach (string suffix in Suffixs)
+ {
+ Field field = _businessInfo.GetField("FCURRENCYID" + suffix);
+ if (field != null)
+ {
+ foreach (string amountField in AmountFields)
+ {
+ Field field2 = _businessInfo.GetField(amountField + suffix);
+ if (field2 != null)
+ {
+ field2.ControlFieldKey = "FCURRENCYID" + suffix;
+ field.ChildrenFields.Add(field2);
+ }
+ }
+
+ foreach (string priceField in PriceFields)
+ {
+ Field field2 = _businessInfo.GetField(priceField + suffix);
+ if (field2 != null)
+ {
+ field2.ControlFieldKey = "FCURRENCYID" + suffix;
+ field.ChildrenFields.Add(field2);
+ }
+ }
+ }
+
+ field = _businessInfo.GetField("FBASICUNITID" + suffix);
+ if (field != null)
+ {
+ foreach (string qTYField in QTYFields)
+ {
+ Field field2 = _businessInfo.GetField(qTYField + suffix);
+ if (field2 != null)
+ {
+ field2.ControlFieldKey = "FBASICUNITID" + suffix;
+ field.ChildrenFields.Add(field2);
+ }
+ }
+ }
+
+ field = _businessInfo.GetField("FPRICEUNITID" + suffix);
+ if (field == null)
+ {
+ continue;
+ }
+
+ foreach (string item in QTYFieldsByUnit)
+ {
+ Field field2 = _businessInfo.GetField(item + suffix);
+ if (field2 != null)
+ {
+ field2.ControlFieldKey = "FPRICEUNITID" + suffix;
+ field.ChildrenFields.Add(field2);
+ }
+ }
+ }
+
+ e.BusinessInfo = _businessInfo;
+ e.BillBusinessInfo = _businessInfo;
+ }
+
+ public override void OnSetLayoutInfo(SetLayoutInfoArgs e)
+ {
+ _layoutInfo = (LayoutInfo)ObjectUtils.CreateCopy(View.OpenParameter.FormMetaData.GetLayoutInfo());
+ _dictFieldApp = new Dictionary>(StringComparer.OrdinalIgnoreCase);
+ _dictFieldApp.Add("1", CreateIntFieldApp);
+ _dictFieldApp.Add("2", CreateTextFieldApp);
+ _dictFieldApp.Add("3", CreateDateFieldApp);
+ _dictFieldApp.Add("4", CreateBooleanFieldApp);
+ _dictFieldApp.Add("5", CreateDecimalFieldApp);
+ _dictFieldApp.Add("6", CreateDateTimeFieldApp);
+ _layoutInfo.Add(CreateIntFieldApp(DebitEntryKey, "FEntryId"));
+ _layoutInfo.Add(CreateIntFieldApp(CreditEntryKey, "FEntryId"));
+ MatchFieldConfig[] configs = Configs;
+ foreach (MatchFieldConfig matchFieldConfig in configs)
+ {
+ if (!VisiableField().Contains(matchFieldConfig.FieldName))
+ {
+ if (showBaseField.Contains(matchFieldConfig.FieldName))
+ {
+ _layoutInfo.Add(CloneBaseFieldApp(matchFieldConfig.FieldName, DebitEntryKey, DebitSuffix, matchFieldConfig));
+ _layoutInfo.Add(CloneBaseFieldApp(matchFieldConfig.FieldName, CreditEntryKey, CrebitSuffix, matchFieldConfig));
+ }
+ else
+ {
+ _layoutInfo.Add(_dictFieldApp[matchFieldConfig.FieldType](DebitEntryKey, matchFieldConfig));
+ _layoutInfo.Add(_dictFieldApp[matchFieldConfig.FieldType](CreditEntryKey, matchFieldConfig));
+ }
+ }
+ }
+
+ e.LayoutInfo = _layoutInfo;
+ e.BillLayoutInfo = _layoutInfo;
+ CreateGrid(DebitEntryKey, DebitSuffix);
+ CreateGrid(CreditEntryKey, CrebitSuffix);
+ }
+
+ public void CreateGrid(string entryKey, string suffix)
+ {
+ string retValue = "";
+ List list = new List();
+ List list2 = new List();
+ List list3 = new List();
+ foreach (string qTYField in QTYFields)
+ {
+ list.Add((qTYField + suffix).ToUpperInvariant());
+ }
+
+ foreach (string item in QTYFieldsByUnit)
+ {
+ list.Add((item + suffix).ToUpperInvariant());
+ }
+
+ foreach (string amountField in AmountFields)
+ {
+ list2.Add((amountField + suffix).ToUpperInvariant());
+ }
+
+ foreach (string priceField in PriceFields)
+ {
+ list3.Add((priceField + suffix).ToUpperInvariant());
+ }
+
+ JSONObject jSONObject = _layoutInfo.GetEntityAppearance(entryKey).CreateControl();
+ jSONObject.Put("primaryKey", "FIndex");
+ jSONObject.Put("indexKey", "FIndex");
+ jSONObject.Put("startRow", 0);
+ jSONObject.Put("pageSize", _layoutInfo.GetEntityAppearance(entryKey).PageRows);
+ JSONArray jSONArray = (JSONArray)jSONObject["columns"];
+ foreach (JSONObject item2 in jSONArray)
+ {
+ if (!item2.TryGetValue("dataIndex", "", out retValue))
+ {
+ continue;
+ }
+
+ FieldAppearance fieldAppearance = _layoutInfo.GetFieldAppearance(retValue);
+ if (fieldAppearance != null)
+ {
+ if (fieldAppearance.Visible == 29)
+ {
+ item2.Put("visible", false);
+ }
+
+ JSONObject jSONObject3 = (JSONObject)item2["editor"];
+ if (list.Contains(retValue) || list2.Contains(retValue))
+ {
+ jSONObject3.Put("precisionField", fieldAppearance.Field.ControlFieldKey);
+ jSONObject3.Put("precisionIndex", 1);
+ }
+ else if (list3.Contains(retValue))
+ {
+ jSONObject3.Put("precisionField", fieldAppearance.Field.ControlFieldKey);
+ jSONObject3.Put("precisionIndex", 2);
+ }
+ }
+ }
+
+ EntryGrid control = View.GetControl(entryKey);
+ IDynamicFormState service = View.GetService();
+ service.PreInvokeControlMethod(_layoutInfo.GetEntityAppearance(entryKey), "CreateDyanmicList", jSONObject);
+ control.InvokeControlMethod("CreateDyanmicList", jSONObject, "");
+ }
+
+ public override void BarItemClick(BarItemClickEventArgs e)
+ {
+ DynamicObject dynamicObject = View.Model.GetValue(MatchScheme) as DynamicObject;
+ SelectedSchemeId = ((dynamicObject == null) ? 0 : Convert.ToInt64(dynamicObject["Id"]));
+ switch (e.BarItemKey)
+ {
+ case "tbVerify":
+ if (View.BillBusinessInfo.GetForm().Id.EqualsIgnoreCase("ER_ManualMatch"))
+ {
+ View.Model.SetValue("FBatchGeneRecord", false);
+ }
+
+ if (MatchType != "5" || (MatchType == "5" && View.BillBusinessInfo.GetForm().Id.EqualsIgnoreCase("ER_ManualMatch")))
+ {
+ lMethodID = 60L;
+ }
+
+ if ((MatchWizardFromId == "AP_PayMatck" || MatchWizardFromId == "AP_BillingMatck" || MatchWizardFromId == "AR_Matck" || MatchWizardFromId == "AR_BillingMatck" || (MatchWizardFromId == "ER_MatchWizard" && View.BillBusinessInfo.GetForm().Id.EqualsIgnoreCase("ER_ManualMatch"))) && SelectedSchemeId == 0)
+ {
+ e.Cancel = true;
+ View.ShowMessage(ResManager.LoadKDString("请选择核销方案", "003192000022643", SubSystemType.FIN));
+ }
+ else
+ {
+ Match();
+ }
+
+ break;
+ case "tbVerifyS":
+ if (View.BillBusinessInfo.GetForm().Id.EqualsIgnoreCase("ER_ManualMatch"))
+ {
+ View.Model.SetValue("FBatchGeneRecord", true);
+ }
+
+ lMethodID = 30L;
+ if (!IsInMatchAmtScop())
+ {
+ View.ShowWarnningMessage(sbMessage.ToString());
+ }
+ else if ((MatchWizardFromId == "AP_PayMatck" || MatchWizardFromId == "AR_Matck") && IsSameOrgAndBatchRecord())
+ {
+ View.ShowErrMessage(ResManager.LoadKDString("选择的核销单据存在结算组织不一致的情况,不能合并产生同一核销记录!", "003192000038823", SubSystemType.FIN));
+ }
+ else if ((MatchWizardFromId == "AP_PayMatck" || MatchWizardFromId == "AP_BillingMatck" || MatchWizardFromId == "AR_Matck" || MatchWizardFromId == "AR_BillingMatck" || (MatchWizardFromId == "ER_MatchWizard" && View.BillBusinessInfo.GetForm().Id.EqualsIgnoreCase("ER_ManualMatch"))) && SelectedSchemeId == 0)
+ {
+ e.Cancel = true;
+ View.ShowMessage(ResManager.LoadKDString("请选择核销方案", "003192000022643", SubSystemType.FIN));
+ }
+ else if (IsMatch())
+ {
+ Match();
+ }
+
+ break;
+ case "tbBDHandle":
+ lMethodID = 81L;
+ isBadDebt = true;
+ InitOrgIdRangeInfoDic();
+ if ((MatchWizardFromId == "AP_PayMatck" || MatchWizardFromId == "AR_Matck") && IsSameOrgAndBatchRecord())
+ {
+ View.ShowErrMessage(ResManager.LoadKDString("选择的核销单据存在结算组织不一致的情况,不能合并产生同一核销记录!", "003192000038823", SubSystemType.FIN));
+ break;
+ }
+
+ SelectedSchemeId = 20008L;
+ Match();
+ break;
+ case "tbUpFilter":
+ ShowFilterBill("1");
+ break;
+ case "tbRefresh":
+ isRefresh = true;
+ break;
+ case "tbDownFilter":
+ ShowFilterBill("-1");
+ break;
+ case "tbViewCheckResult":
+ ShowCheckResult();
+ break;
+ case "tbViewMatchLog":
+ ShowMatchLog(bLog: true);
+ break;
+ case "tbViewMatchBill":
+ ShowMatchLog(bLog: false);
+ break;
+ }
+ }
+
+ protected virtual void ShowMatchLog(bool bLog)
+ {
+ }
+
+ public override void AfterBarItemClick(AfterBarItemClickEventArgs e)
+ {
+ base.AfterBarItemClick(e);
+ string barItemKey;
+ if ((barItemKey = e.BarItemKey) != null && barItemKey == "tbRefresh")
+ {
+ GetBillData("1", _debitFilterPara);
+ GetBillData("-1", _creditFilterPara);
+ }
+ }
+
+ protected virtual void ResultRowData(MatchBillData data, DynamicObject enrtyData, string suffix)
+ {
+ }
+
+ private bool IsInMatchAmtScop()
+ {
+ if (sSystemFormID.IsNullOrEmptyOrWhiteSpace())
+ {
+ return true;
+ }
+
+ InitOrgInfos();
+ return IsInMatchAmtScope();
+ }
+
+ private bool IsSameOrgAndBatchRecord()
+ {
+ bool value = View.Model.DataObject.GetValue("FBatchGeneRecord", defValue: false);
+ List list = orgIdRangeInfo.Keys.Select((SpecialDimensions p) => p.SettleOrgID).ToList();
+ if (value && list != null && list.Count > 1)
+ {
+ return true;
+ }
+
+ return false;
+ }
+
+ private void InitOrgInfos()
+ {
+ InitOrgIdRangeInfoDic();
+ orgMatchRangeFromDic = GetOrgMatchRangeDic(sSystemFormID, "MatchRangeFrom");
+ orgMatchRangeToDic = GetOrgMatchRangeDic(sSystemFormID, "MatchRangeTo");
+ if (View.BillBusinessInfo.GetForm().Id.EqualsIgnoreCase("ER_ManualMatch"))
+ {
+ if (orgMatchRangeFromDic != null && orgMatchRangeFromDic.Count() > 0)
+ {
+ foreach (long item in orgMatchRangeFromDic.Keys.ToList())
+ {
+ if (Convert.ToDecimal(orgMatchRangeFromDic[item]) == 0m)
+ {
+ orgMatchRangeFromDic[item] = -10;
+ }
+ }
+ }
+
+ if (orgMatchRangeToDic != null && orgMatchRangeToDic.Count() > 0)
+ {
+ foreach (long item2 in orgMatchRangeToDic.Keys.ToList())
+ {
+ if (Convert.ToDecimal(orgMatchRangeToDic[item2]) == 0m)
+ {
+ orgMatchRangeToDic[item2] = 10;
+ }
+ }
+ }
+ }
+
+ SetMatchRangeToRangeInfoDic();
+ }
+
+ private bool IsInMatchAmtScope()
+ {
+ sbMessage = new StringBuilder();
+ bool flag = View.BillBusinessInfo.GetForm().Id.EqualsIgnoreCase("ER_ManualMatch");
+ foreach (SpecialDimensions key in orgIdRangeInfo.Keys)
+ {
+ if (flag)
+ {
+ orgIdRangeInfo[key].SetMessageForERUse();
+ }
+ else
+ {
+ orgIdRangeInfo[key].SetMessage();
+ }
+
+ if (!orgIdRangeInfo[key].BAllowMatch)
+ {
+ sbMessage.AppendLine(orgIdRangeInfo[key].SMessage);
+ }
+ }
+
+ return sbMessage.Length == 0;
+ }
+
+ private Dictionary GetOrgMatchRangeDic(string system, string sRange)
+ {
+ List orgIds = orgIdRangeInfo.Keys.Select((SpecialDimensions p) => p.SettleOrgID).ToList();
+ Dictionary dictionary = new Dictionary();
+ return SystemParameterServiceHelper.GetParamter(base.Context, orgIds, 0L, system, sRange);
+ }
+
+ private void InitOrgIdRangeInfoDic()
+ {
+ MaxDate = InitMaxFDate();
+ orgIdRangeInfo = new Dictionary();
+ InitOrgIdRangeInfoDicBySuffix(DebitSuffix);
+ InitOrgIdRangeInfoDicBySuffix(CrebitSuffix);
+ }
+
+ private DateTime InitMaxFDate()
+ {
+ DateTime dateTime = default(DateTime);
+ DynamicObjectCollection source = View.Model.DataObject["FDebitEntry"] as DynamicObjectCollection;
+ DynamicObjectCollection source2 = View.Model.DataObject["FCreditEntry"] as DynamicObjectCollection;
+ new List();
+ List