diff --git a/Newtonsoft.Json.dll b/Newtonsoft.Json.dll new file mode 100644 index 0000000..416bd37 Binary files /dev/null and b/Newtonsoft.Json.dll differ diff --git a/aoyuPlugIn.sln b/aoyuPlugIn.sln new file mode 100644 index 0000000..f47509b --- /dev/null +++ b/aoyuPlugIn.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.271 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "aoyuPlugIn", "aoyuPlugIn\aoyuPlugIn.csproj", "{FD254B5C-1BE6-4165-9176-9DA10375CE7D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FD254B5C-1BE6-4165-9176-9DA10375CE7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FD254B5C-1BE6-4165-9176-9DA10375CE7D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FD254B5C-1BE6-4165-9176-9DA10375CE7D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FD254B5C-1BE6-4165-9176-9DA10375CE7D}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {65E004C6-66BA-46D0-AD19-6200637A2A82} + EndGlobalSection +EndGlobal diff --git a/aoyuPlugIn/MJ_wgd_lb.cs b/aoyuPlugIn/MJ_wgd_lb.cs new file mode 100644 index 0000000..72fb03c --- /dev/null +++ b/aoyuPlugIn/MJ_wgd_lb.cs @@ -0,0 +1,376 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.List.PlugIn; +using Kingdee.BOS.WebApi.FormService; +using Newtonsoft.Json.Linq; +using Newtonsoft.Json; +using System.Web.Script.Serialization; + +namespace aoyuPlugIn +{ + [Description("列表费用归集新增")] + [Kingdee.BOS.Util.HotUpdate] + public class MJ_wgd_lb : AbstractListPlugIn + { + + //列表菜单事件 + public override void AfterBarItemClick(AfterBarItemClickEventArgs e) + { + base.AfterBarItemClick(e); + if (e.BarItemKey == "tbfygjlb")//生成费用归集单 + { + if (this.ListView.SelectedRowsInfo.Count > 0) + { + for (int i = 0; i < this.ListView.SelectedRowsInfo.Count; i++) + { + //取指定行单据编号 + string fbillno = this.ListView.SelectedRowsInfo[i].BillNo; + //string zt = this.ListView.SelectedRowsInfo[i].DataRow["FDOCUMENTSTATUS"].ToString();//取单据状态 + + SaveBill(fbillno); + + } + + } + } + } + //调用API生成费用归集单--本机 + public Boolean SaveBill2(string fbillno) + { + + try + { + var sSql = String.Format("EXEC hw_get_wwdd '" + fbillno + "'"); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + int i = 0; + if (dr.Count > 0) + { + try + { + JObject jsonRoot = new JObject(); + + // NeedUpDateFields: 哪些字段需要更新?为空则表示参数中全部字段,均需要更新 + jsonRoot.Add("NeedUpDateFields", new JArray("")); + + // Model: 单据详细数据参数 + JObject model = new JObject(); + jsonRoot.Add("Model", model); + + // 开始设置单据字段值 + // 必须设置的字段:主键、单据类型、主业务组织,各必录且没有设置默认值的字段 + // 特别注意:字段Key大小写是敏感的,建议从BOS设计器中,直接复制字段的标识属性过来 + + // 单据主键:必须填写,系统据此判断是新增还是修改单据;新增单据,填0 + model.Add("FID", 0); + + //核算体系编码 + JObject FACCTGSYSTEMID = new JObject(); + FACCTGSYSTEMID.Add("FNumber", "KJHSTX01_SYS"); + model.Add("FACCTGSYSTEMID", FACCTGSYSTEMID); + + //核算体组织码 + JObject FACCTGORGID = new JObject(); + FACCTGORGID.Add("FNumber", "107"); + + model.Add("FACCTGORGID", FACCTGORGID); + + //会计政策编码 + JObject FACCTPOLICYID = new JObject(); + FACCTPOLICYID.Add("FNumber", "KJZC02_SYS"); + + model.Add("FACCTPOLICYID", FACCTPOLICYID); + + + ////业务类型 + //model.Add("FBusinessType", "CG");//标准采购 + + + // 开始构建单据体参数:集合参数JArray + + JArray entryRows = new JArray(); + // 把单据体行集合,添加到model中,以单据体Key为标识 + string entityKey = "FEntity"; + model.Add(entityKey, entryRows); + // 通过循环创建单据体行:示例代码仅创建一行 + foreach (var item in dr) + { + // 添加新行,把新行加入到单据体行集合 + JObject entryRow = new JObject(); + entryRows.Add(entryRow); + + + // 给新行,设置关键字段值 + // 单据体主键:必须填写,系统据此判断是新增还是修改行,0是新增 + entryRow.Add("FEntryID", 0); + + //业务组织 + JObject FBIZORGID = new JObject(); + FBIZORGID.Add("FNumber", "107"); + + entryRow.Add("FBIZORGID", FBIZORGID); + + //费用项目编码 + JObject FEXPENSEITEMID = new JObject(); + FEXPENSEITEMID.Add("FNumber", "FYXM04_SYS"); + entryRow.Add("FEXPENSEITEMID", FEXPENSEITEMID); + + //this.Model.SetValue("F_ISSYQ", item[2], i); + //日期 + //entryRow.Add("FDATE", item[0].ToString()); + entryRow.Add("FDATE", "2019-5-31"); + //成本中心编码 + JObject FCOSTCENTERID = new JObject(); + FCOSTCENTERID.Add("FNumber", "CBZX000016"); + + entryRow.Add("FCOSTCENTERID", FCOSTCENTERID); + + + //金额 + entryRow.Add("FAMOUNT", item[1].ToString()); + + + + //产品编号 + JObject FPRODUCTID = new JObject(); + FPRODUCTID.Add("FNumber", item[2].ToString()); + entryRow.Add("FPRODUCTID", FPRODUCTID); + i++; + } + + // 调用Web API接口服务,保存 + object result = WebApiServiceCall.Save(this.Context, "CB_EXPENSECOLLECTION", jsonRoot.ToString()); + + string t = objzjs(result); + + if (strJson(t)) + { + sSql = string.Format("exec hw_fxwgd '{0}'", fbillno); + DBServiceHelper.Execute(this.Context, sSql); + this.View.ShowMessage("操作成功!"); + + return true; + } + else + { + this.View.ShowMessage("操作失败!" + t); + return false; + + } + + } + catch (Exception ex) + { + StringBuilder sb = new StringBuilder(); + sb.AppendLine("程序运行遇到了未知的错误11:"); + sb.Append("错误提示:").AppendLine(ex.Message); + sb.Append("错误堆栈:").AppendLine(ex.StackTrace); + this.View.ShowMessage(sb.ToString()); + return false; + } + } + else + { + this.View.ShowMessage("无数据,请确认后再操作!"); + return false; + } + + } + catch (Exception ex) { this.View.ShowMessage("生成费用归集单时发生错误为:" + ex.Message); return false; } + + + } + //调用API生成费用归集单--汇威 + public Boolean SaveBill(string fbillno) + { + + try + { + var sSql = String.Format("EXEC hw_get_wwdd '" + fbillno + "'"); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + int i = 0; + if (dr.Count > 0) + { + try + { + JObject jsonRoot = new JObject(); + + // NeedUpDateFields: 哪些字段需要更新?为空则表示参数中全部字段,均需要更新 + jsonRoot.Add("NeedUpDateFields", new JArray("")); + + // Model: 单据详细数据参数 + JObject model = new JObject(); + jsonRoot.Add("Model", model); + + // 开始设置单据字段值 + // 必须设置的字段:主键、单据类型、主业务组织,各必录且没有设置默认值的字段 + // 特别注意:字段Key大小写是敏感的,建议从BOS设计器中,直接复制字段的标识属性过来 + + // 单据主键:必须填写,系统据此判断是新增还是修改单据;新增单据,填0 + model.Add("FID", 0); + + //核算体系编码 + JObject FACCTGSYSTEMID = new JObject(); + FACCTGSYSTEMID.Add("FNumber", "KJHSTX01_SYS"); + model.Add("FACCTGSYSTEMID", FACCTGSYSTEMID); + + //核算体组织码 + JObject FACCTGORGID = new JObject(); + //FACCTGORGID.Add("FNumber", "107"); + FACCTGORGID.Add("FNumber", "100"); + model.Add("FACCTGORGID", FACCTGORGID); + + //会计政策编码 + JObject FACCTPOLICYID = new JObject(); + //FACCTPOLICYID.Add("FNumber", "KJZC02_SYS"); + FACCTPOLICYID.Add("FNumber", "KJZC01_SYS"); + model.Add("FACCTPOLICYID", FACCTPOLICYID); + + + ////业务类型 + //model.Add("FBusinessType", "CG");//标准采购 + + + // 开始构建单据体参数:集合参数JArray + + JArray entryRows = new JArray(); + // 把单据体行集合,添加到model中,以单据体Key为标识 + string entityKey = "FEntity"; + model.Add(entityKey, entryRows); + // 通过循环创建单据体行:示例代码仅创建一行 + foreach (var item in dr) + { + // 添加新行,把新行加入到单据体行集合 + JObject entryRow = new JObject(); + entryRows.Add(entryRow); + + + // 给新行,设置关键字段值 + // 单据体主键:必须填写,系统据此判断是新增还是修改行,0是新增 + entryRow.Add("FEntryID", 0); + + //业务组织 + JObject FBIZORGID = new JObject(); + //FBIZORGID.Add("FNumber", "107"); + FBIZORGID.Add("FNumber", "100"); + entryRow.Add("FBIZORGID", FBIZORGID); + + //费用项目编码 + JObject FEXPENSEITEMID = new JObject(); + FEXPENSEITEMID.Add("FNumber", "FYXM04_SYS"); + entryRow.Add("FEXPENSEITEMID", FEXPENSEITEMID); + + //this.Model.SetValue("F_ISSYQ", item[2], i); + //日期 + entryRow.Add("FDATE", item[0].ToString()); + //entryRow.Add("FDATE", "2019-5-31"); + //成本中心编码 + JObject FCOSTCENTERID = new JObject(); + //FCOSTCENTERID.Add("FNumber", "CBZX000016"); + FCOSTCENTERID.Add("FNumber", "CBZX000049"); + entryRow.Add("FCOSTCENTERID", FCOSTCENTERID); + + + //金额 + entryRow.Add("FAMOUNT", item[1].ToString()); + + + + //产品编号 + JObject FPRODUCTID = new JObject(); + FPRODUCTID.Add("FNumber", item[2].ToString()); + entryRow.Add("FPRODUCTID", FPRODUCTID); + i++; + } + + // 调用Web API接口服务,保存 + var result = WebApiServiceCall.Save(this.Context, "CB_EXPENSECOLLECTION", jsonRoot.ToString()); + + + string t = objzjs(result); + + if (strJson(t)) + { + sSql = string.Format("exec hw_fxwgd '{0}'", fbillno); + DBServiceHelper.Execute(this.Context, sSql); + this.View.ShowMessage("操作成功1!"); + return true; + } + else + { + this.View.ShowMessage("操作失败!" + t); + return false; + + } + + } + catch (Exception ex) + { + StringBuilder sb = new StringBuilder(); + sb.AppendLine("程序运行遇到了未知的错误11:"); + sb.Append("错误提示:").AppendLine(ex.Message); + sb.Append("错误堆栈:").AppendLine(ex.StackTrace); + this.View.ShowMessage(sb.ToString()); + return false; + } + } + else + { + this.View.ShowMessage("无数据,请确认后再操作!"); + return false; + } + + } + catch (Exception ex) { this.View.ShowMessage("生成费用归集单时发生错误为:" + ex.Message); return false; } + + + } + //object转json + public string objzjs(Object obj) + { + JavaScriptSerializer js = new JavaScriptSerializer(); + string myJson = js.Serialize(obj); + return myJson; + } + // 将字符串转换成Json格式显示 + //字符串转json + public bool strJson(string t) + { + string jsonText = t; + // "{"shenzheng":"深圳","beijing":"北京","shanghai":[{"zj1":"zj11","zj2":"zj22"},"zjs"]}"; + + JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);//或者JObject jo = JObject.Parse(jsonText); + //string zone = jo["shenzheng"].ToString();//输出 "深圳" + //string zone_en = jo["shanghai"].ToString();//输出 "[{"zj1":"zj11","zj2":"zj22"},"zjs"]" + //string zj1 = jo["shanghai"][1].ToString();//输出 "zjs" + //Console.WriteLine(jo); + + string tt = jo["Result"].ToString(); + JObject jo1 = (JObject)JsonConvert.DeserializeObject(tt); + string t3 = jo1["ResponseStatus"].ToString(); + JObject jo2 = (JObject)JsonConvert.DeserializeObject(t3); + string t4 = jo2["IsSuccess"].ToString(); + + if (t4.ToLower() == "true") + return true; + else + return false; + } + + + } +} diff --git a/aoyuPlugIn/MaterialUnAuditController.cs b/aoyuPlugIn/MaterialUnAuditController.cs new file mode 100644 index 0000000..021a4bd --- /dev/null +++ b/aoyuPlugIn/MaterialUnAuditController.cs @@ -0,0 +1,49 @@ +using Kingdee.BOS.App.Data; +using Kingdee.BOS.Core; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.Util; +using System; +using System.ComponentModel; + +namespace Kingdee.Joysing.Domustarzs +{ + [HotUpdate] + [Description("物料反审核控制【已弃用】")] + public class MaterialUnAuditController: AbstractOperationServicePlugIn + { + public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e) + { + + foreach (ExtendedDataEntity extendedDataEntity in e.SelectedRows) + { + int MaterialID = 0; + DynamicObject dynamicObjects = extendedDataEntity.DataEntity; + MaterialID = Convert.ToInt32(dynamicObjects["Id"]); + + string sql = string.Format(@"/*dialect*/select + (SELECT case when count(1) > 0 then '在BOM单已使用此物料,' else ''end + FROM T_ENG_BOM t0 LEFT OUTER JOIN T_ENG_BOMCHILD t1 ON t0.FID = t1.FID + where t0.FMATERIALID={0} or t1.FMATERIALID={1})+ + (SELECT case when count(1) > 0 then '采购订单已使用此物料,' else ''end + FROM T_PUR_POORDERENTRY where FMATERIALID = {2}) as result + where (select top 1 FAntiCheckControl from PAEZ_t_AntiCheckControl order by fid)=1", MaterialID, MaterialID, MaterialID); + DynamicObjectCollection rows = DBUtils.ExecuteDynamicObject(this.Context, sql); + string result = ""; + foreach (DynamicObject row in rows) + { + result = row["result"].ToString(); + } + if (!"".Equals(result)) + { + e.Cancel = true; + e.CancelMessage = Convert.ToString(dynamicObjects["Number"]) + result + "不能反审核的!本次反审核操作失败。"; + + break; + } + } + base.BeforeExecuteOperationTransaction(e); + } + } +} diff --git a/aoyuPlugIn/Properties/AssemblyInfo.cs b/aoyuPlugIn/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..3a5123f --- /dev/null +++ b/aoyuPlugIn/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 有关程序集的一般信息由以下 +// 控制。更改这些特性值可修改 +// 与程序集关联的信息。 +[assembly: AssemblyTitle("aoyuPlugIn")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("aoyuPlugIn")] +[assembly: AssemblyCopyright("Copyright © 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 将 ComVisible 设置为 false 会使此程序集中的类型 +//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 +//请将此类型的 ComVisible 特性设置为 true。 +[assembly: ComVisible(false)] + +// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID +[assembly: Guid("fd254b5c-1be6-4165-9176-9da10375ce7d")] + +// 程序集的版本信息由下列四个值组成: +// +// 主版本 +// 次版本 +// 生成号 +// 修订号 +// +// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号 +//通过使用 "*",如下所示: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/aoyuPlugIn/aoyuPlugIn.csproj b/aoyuPlugIn/aoyuPlugIn.csproj new file mode 100644 index 0000000..9c83f14 --- /dev/null +++ b/aoyuPlugIn/aoyuPlugIn.csproj @@ -0,0 +1,126 @@ + + + + + Debug + AnyCPU + {FD254B5C-1BE6-4165-9176-9DA10375CE7D} + Library + Properties + aoyuPlugIn + aoyuPlugIn + v4.5 + 512 + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + bin\Debug\Kingdee.BOS.dll + + + False + bin\Debug\Kingdee.BOS.App.dll + + + False + bin\Debug\Kingdee.BOS.App.Core.dll + + + False + bin\Debug\Kingdee.BOS.Contracts.dll + + + False + bin\Debug\Kingdee.BOS.Core.dll + + + False + bin\Debug\Kingdee.BOS.DataEntity.dll + + + False + bin\Debug\Kingdee.BOS.ServiceHelper.dll + + + False + C:\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.WebApi.Client.dll + + + False + C:\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.WebApi.FormService.dll + + + False + C:\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.Core.dll + + + False + C:\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.FIN.App.Core.dll + + + False + ..\Newtonsoft.Json.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/aoyuPlugIn/zplr_lb_sh.cs b/aoyuPlugIn/zplr_lb_sh.cs new file mode 100644 index 0000000..4f817bf --- /dev/null +++ b/aoyuPlugIn/zplr_lb_sh.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.K3.Core.MFG.EntityHelper; +using System.ComponentModel; +using Kingdee.BOS; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core; +using Kingdee.BOS.Core.Const; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.Operation; +using Kingdee.BOS.Core.List; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.ConvertElement; +using Kingdee.BOS.Core.Metadata.ConvertElement.ServiceArgs; +using Kingdee.BOS.Core.Interaction; +using Kingdee.BOS.Core.Validation; +using Kingdee.BOS.Contracts; +using Kingdee.BOS.App; +using Kingdee.BOS.App.Data; +using Kingdee.BOS.Orm; +using Kingdee.BOS.Orm.DataEntity; + +namespace aoyuPlugIn +{ + [Description("装配录入列表--审核")] + public class zplr_lb_sh : AbstractOperationServicePlugIn + { + public override void EndOperationTransaction(EndOperationTransactionArgs e) + { + foreach (DynamicObject item in e.DataEntitys) + { + long fid = Convert.ToInt64(item["ID"]); + + } + } + void fxjdb(string issh) + { + //try + //{ + // //string fbillno = ""; + // if (this.ListView.SelectedRowsInfo.Count > 0) + // { + // for (int i = 0; i < this.ListView.SelectedRowsInfo.Count; i++) + // { + // //取指定行单据编号 + // string fbillno = this.ListView.SelectedRowsInfo[i].BillNo; + // string zt = this.ListView.SelectedRowsInfo[i].DataRow["FDOCUMENTSTATUS"].ToString(); + // if (issh == "1") + // { + // if (zt == "D" || zt == "B") + // { + // fx_yscs(fbillno, issh); + // } + // } + // else + // { + // if (zt == "C") + // { + // fx_yscs(fbillno, issh); + // } + // } + + + // } + // } + //} + //catch (Exception ex) { this.View.ShowMessage("反写已生产数时发生错误为:" + ex.Message); } + } + } +} diff --git a/aoyuPlugIn/常成/cc_dbd.cs b/aoyuPlugIn/常成/cc_dbd.cs new file mode 100644 index 0000000..f2025ca --- /dev/null +++ b/aoyuPlugIn/常成/cc_dbd.cs @@ -0,0 +1,107 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.Validation; +using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel; + +namespace aoyuPlugIn +{ + [Description("调拔单")] + public class cc_dbd : AbstractBillPlugIn + { + List> mycolor = new List>(); + public override void BarItemClick(BarItemClickEventArgs e) + { + base.BarItemClick(e); + if (e.BarItemKey == "tbApprove" || e.BarItemKey == "tbSplitApprove") + { + string fbillno = this.View.Model.GetValue("FBillNo").ToString(); + var sSql = String.Format("EXEC hz_cc_dbd " + fbillno); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + if (dr.Count > 0) + { + + string t = "发货数量大于当前库存,不能审核!"; + foreach (var item in dr) + { + string k = "物料编号:" + item["FNUMBER"].ToString() + "|未出库数合计:" + item["wcks"].ToString() + + "|即时库存:" + item["jskc"].ToString(); + t = t + "\r\n" + k; + } + + List> colors = new List>(); + DynamicObjectCollection entrys = this.View.Model.GetEntityDataObject(this.View.BusinessInfo.GetEntity("FBillEntry")); + int rowNo = 0; + //80C8FE + foreach (var one in entrys) + { + string wl = ""; + wl = Convert.ToString((this.View.Model.GetValue("FMATERIALID", rowNo) as DynamicObject)["Number"]); + foreach (var item in dr) + { + if (item["FNUMBER"].ToString() == wl) + { + colors.Add(new KeyValuePair(rowNo, "#80C8FE")); + mycolor.Add(new KeyValuePair(rowNo, "#FFFFFF")); + } + } + rowNo++; + } + EntryGrid grid = this.View.GetControl("FBillEntry"); + grid.SetRowBackcolor(colors); + + this.View.ShowMessage(t); + //setColor(); + e.Cancel = true; + } + + + } + } + public override void EntryBarItemClick(BarItemClickEventArgs e) + { + base.EntryBarItemClick(e); + if (e.BarItemKey.ToString() == "tbDeleteRow") + { + EntryGrid grid = this.View.GetControl("FBillEntry"); + + //int tol = this.Model.GetEntryRowCount("FEntity"); + int k = this.Model.GetEntryCurrentRowIndex("FBillEntry"); + + grid.SetRowBackcolor("#FFFFFF", k); + + } + //this.View.ShowMessage(e.BarItemKey.ToString()); + } + + + //设置行颜色 + void setColor() + { + List> colors = new List>(); + DynamicObjectCollection entrys = this.View.Model.GetEntityDataObject(this.View.BusinessInfo.GetEntity("FBillEntry")); + int rowNo = 0; + foreach (var one in entrys) + { + colors.Add(new KeyValuePair(rowNo, "#80C8FE")); + rowNo++; + } + EntryGrid grid = this.View.GetControl("FBillEntry"); + grid.SetRowBackcolor(colors); + } + } +} diff --git a/aoyuPlugIn/常成/cc_dbd_lb.cs b/aoyuPlugIn/常成/cc_dbd_lb.cs new file mode 100644 index 0000000..9067e92 --- /dev/null +++ b/aoyuPlugIn/常成/cc_dbd_lb.cs @@ -0,0 +1,67 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.List.PlugIn; + +namespace aoyuPlugIn +{ + [Description("调拔单列表审核")] + public class cc_dbd_lb : AbstractListPlugIn + { + public override void BeforeDoOperation(BeforeDoOperationEventArgs e) + { + base.BeforeDoOperation(e); + if (e.Operation.FormOperation.Id == "ad221364-f04e-4b31-8a69-debd8f5066bc")//审核 + { + if (this.ListView.SelectedRowsInfo.Count > 0) + + { + + for (int i = 0; i < this.ListView.SelectedRowsInfo.Count; i++) + { + //取指定行单据编号 + string fbillno = this.ListView.SelectedRowsInfo[i].BillNo; + string zt = this.ListView.SelectedRowsInfo[i].DataRow["FDOCUMENTSTATUS"].ToString(); + + if (zt == "D" || zt == "B") + { + var sSql = String.Format("EXEC hz_cc_dbd " + fbillno); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + if (dr.Count > 0) + { + + string t = "发货数量大于当前库存,不能审核!"; + foreach (var item in dr) + { + string k = "单据编号:" + fbillno + "中物料:" + item["FNUMBER"].ToString() + "|未出库数合计:" + item["wcks"].ToString() + + "|即时库存:" + item["jskc"].ToString(); + t = t + "\r\n" + k; + } + this.View.ShowMessage(t); + e.Cancel = true; + } + } + } + + } + + + } + + } + } +} diff --git a/aoyuPlugIn/常成/fhtzd.cs b/aoyuPlugIn/常成/fhtzd.cs new file mode 100644 index 0000000..402a304 --- /dev/null +++ b/aoyuPlugIn/常成/fhtzd.cs @@ -0,0 +1,109 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.Validation; +using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel; +//using System.Windows.Forms; +//using System.Data; + + +namespace aoyuPlugIn +{//AbstractValidator + [Description("发货通知单")] + public class xs_fhtzd : AbstractBillPlugIn + { + List> mycolor = new List>(); + public override void BarItemClick(BarItemClickEventArgs e) + { + base.BarItemClick(e); + if (e.BarItemKey == "tbApprove" || e.BarItemKey== "tbSplitApprove") + { + string fbillno = this.View.Model.GetValue("FBillNo").ToString(); + var sSql = String.Format("EXEC hz_fhtzd " + fbillno); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + if (dr.Count > 0) + { + + string t = "发货数量大于当前库存,不能审核!"; + foreach (var item in dr) + { + string k = "物料编号:" + item["FNUMBER"].ToString() + "|未出库数合计:" + item["wcks"].ToString() + + "|即时库存:" + item["jskc"].ToString(); + t = t + "\r\n" + k; + } + + List> colors = new List>(); + DynamicObjectCollection entrys = this.View.Model.GetEntityDataObject(this.View.BusinessInfo.GetEntity("FEntity")); + int rowNo = 0; + //80C8FE + foreach (var one in entrys) + { + string wl = ""; + wl = Convert.ToString((this.View.Model.GetValue("FMATERIALID", rowNo) as DynamicObject)["Number"]); + foreach (var item in dr) + { + if (item["FNUMBER"].ToString() == wl) + { colors.Add(new KeyValuePair(rowNo, "#80C8FE")); + mycolor.Add(new KeyValuePair(rowNo, "#FFFFFF")); + } + } + rowNo++; + } + EntryGrid grid = this.View.GetControl("FEntity"); + grid.SetRowBackcolor(colors); + + this.View.ShowMessage(t); + //setColor(); + e.Cancel = true; + } + + + } + } + public override void EntryBarItemClick(BarItemClickEventArgs e) + { + base.EntryBarItemClick(e); + if(e.BarItemKey.ToString()== "tbDeleteRow") + { + EntryGrid grid = this.View.GetControl("FEntity"); + + //int tol = this.Model.GetEntryRowCount("FEntity"); + int k=this.Model.GetEntryCurrentRowIndex("FEntity"); + + grid.SetRowBackcolor("#FFFFFF", k); + + } + //this.View.ShowMessage(e.BarItemKey.ToString()); + } + + + //设置行颜色 + void setColor() + { + List> colors = new List>(); + DynamicObjectCollection entrys = this.View.Model.GetEntityDataObject(this.View.BusinessInfo.GetEntity("FEntity")); + int rowNo = 0; + foreach(var one in entrys) + { + colors.Add(new KeyValuePair(rowNo, "#80C8FE")); + rowNo++; + } + EntryGrid grid = this.View.GetControl("FEntity"); + grid.SetRowBackcolor(colors); + } + } +} diff --git a/aoyuPlugIn/常成/fhtzd_lb.cs b/aoyuPlugIn/常成/fhtzd_lb.cs new file mode 100644 index 0000000..444282f --- /dev/null +++ b/aoyuPlugIn/常成/fhtzd_lb.cs @@ -0,0 +1,108 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.List.PlugIn; + +namespace aoyuPlugIn +{ + [Description("发货通知单列表审核")] + public class fhtzd_lb: AbstractListPlugIn + { + + //列表菜单事件 + public override void AfterBarItemClick(AfterBarItemClickEventArgs e) + { + base.AfterBarItemClick(e); + + if (e.BarItemKey == "tbSplitApprove" || e.BarItemKey == "tbApprove")//审核 + { + return; + if (this.ListView.SelectedRowsInfo.Count > 0) + + { + + for (int i = 0; i < this.ListView.SelectedRowsInfo.Count; i++) + { + //取指定行单据编号 + string fbillno = this.ListView.SelectedRowsInfo[i].BillNo; + string zt = this.ListView.SelectedRowsInfo[i].DataRow["FDOCUMENTSTATUS"].ToString(); + + if (zt == "D" || zt == "B") + { + var sSql = String.Format("EXEC hz_fhtzd " + fbillno); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + if (dr.Count > 0) + { + + string t = "发货数量大于当前库存,不能审核!"; + foreach (var item in dr) + { + string k = "物料编号:" + item["FNUMBER"].ToString() + "|未出库数合计:" + item["wcks"].ToString() + + "|即时库存:" + item["jskc"].ToString(); + t = t + "\r\n" + k; + } + this.View.ShowMessage(t); + } + } + } + + } + } + } + public override void BeforeDoOperation(BeforeDoOperationEventArgs e) + { + base.BeforeDoOperation(e); + if (e.Operation.FormOperation.Id == "ad221364-f04e-4b31-8a69-debd8f5066bc")//审核 + { + if (this.ListView.SelectedRowsInfo.Count > 0) + + { + + for (int i = 0; i < this.ListView.SelectedRowsInfo.Count; i++) + { + //取指定行单据编号 + string fbillno = this.ListView.SelectedRowsInfo[i].BillNo; + string zt = this.ListView.SelectedRowsInfo[i].DataRow["FDOCUMENTSTATUS"].ToString(); + + if (zt == "D" || zt == "B") + { + var sSql = String.Format("EXEC hz_fhtzd " + fbillno); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + if (dr.Count > 0) + { + + string t = "发货数量大于当前库存,不能审核!"; + foreach (var item in dr) + { + string k = "单据编号:"+fbillno+"中物料:" + item["FNUMBER"].ToString() + "|未出库数合计:" + item["wcks"].ToString() + + "|即时库存:" + item["jskc"].ToString(); + t = t + "\r\n" + k; + } + this.View.ShowMessage(t); + e.Cancel = true; + } + } + } + + } + + + } + + } + } +} diff --git a/aoyuPlugIn/接口/jk_cgcx.cs b/aoyuPlugIn/接口/jk_cgcx.cs new file mode 100644 index 0000000..fa6fbed --- /dev/null +++ b/aoyuPlugIn/接口/jk_cgcx.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + + +//using Newtonsoft.Json.Linq; +using Kingdee.BOS.WebApi.Client; + +namespace aoyuPlugIn +{ + class jk_cgcx + { + } +} diff --git a/aoyuPlugIn/服务插件校验数据/OnAddValidatorsHead.cs b/aoyuPlugIn/服务插件校验数据/OnAddValidatorsHead.cs new file mode 100644 index 0000000..bc0e7af --- /dev/null +++ b/aoyuPlugIn/服务插件校验数据/OnAddValidatorsHead.cs @@ -0,0 +1,85 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Kingdee.BOS; +using Kingdee.BOS.Core; +//服务端 +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +//校验器 +using Kingdee.BOS.Core.Validation; +using System.ComponentModel; + + +namespace aoyuPlugIn +{ + [Description("校验器")] + [Kingdee.BOS.Util.HotUpdate] + + //继承操作服务插件 + public class OnAddValidatorsHead:AbstractOperationServicePlugIn + { + //OnPreparePropertys 数据加载前,确保需要的属性被加载 + //因为需要读取采购员信息,先必须加载 + public override void OnPreparePropertys(PreparePropertysEventArgs e) + { + base.OnPreparePropertys(e); + //采购员FPurchaserId + e.FieldKeys.Add("FPurchaserId"); + //单据编号FBillNo + e.FieldKeys.Add("FBillNo"); + + //加载复选框 F_PAEZ_CheckBox + e.FieldKeys.Add("F_PAEZ_CheckBox"); + } + + //OnAddValidators操作执行前,加载操作校验器 + public override void OnAddValidators(AddValidatorsEventArgs e) + { + base.OnAddValidators(e); + TestValidator validator = new TestValidator(); + //是否需要校验,true需要 + validator.AlwaysValidate = true; + //校验单据头FBillHead + validator.EntityKey = "FBillHead"; + + //校验单据体FPOOrderEntry + validator.EntityKey = "FPOOrderEntry"; + + //加载校验器 + e.Validators.Add(validator); + } + //自定义校验器.派生:AbstractValidator + private class TestValidator:AbstractValidator + { + //重写方法 + //数组ExtendedDataEntity,传递全部的信息 + public override void Validate(ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Context ctx) + { //for循环,读取数据 + foreach (ExtendedDataEntity obj in dataEntities) + { + + //判断复选框是否勾选 + if (!(bool)obj.DataEntity["F_PAEZ_CheckBox"]) + { //报错 + validateContext.AddError(obj.DataEntity, + new ValidationErrorInfo + ("",//出错的字段Key,可以空 + obj.DataEntity["Id"].ToString(),// 数据包内码,必填,后续操作会据此内码避开此数据包 + obj.DataEntityIndex, // 出错的数据包在全部数据包中的顺序 + obj.RowIndex,// 出错的数据行在全部数据行中的顺序,如果校验基于单据头,此为0 + "001",//错误编码,可以任意设定一个字符,主要用于追查错误来源 + "单据编号" + obj.BillNo + "第" + obj.RowIndex + "行没有选择复选框",// 错误的详细提示信息 + "审核:" + obj.BillNo,// 错误的简明提示信息 + ErrorLevel.Error// 错误级别:警告、错误... + )); + } + } + } + } + + + } +} diff --git a/aoyuPlugIn/汇威/API新增单据/API_fygj.cs b/aoyuPlugIn/汇威/API新增单据/API_fygj.cs new file mode 100644 index 0000000..f758b0e --- /dev/null +++ b/aoyuPlugIn/汇威/API新增单据/API_fygj.cs @@ -0,0 +1,540 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Newtonsoft.Json.Linq; +using Kingdee.BOS.WebApi.Client; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.WebApi.FormService; +using System.Web.Script.Serialization; +using Newtonsoft.Json; +using System.IO; + +namespace aoyuPlugIn +{ + [Description("费用归集新增")] + [Kingdee.BOS.Util.HotUpdate] + public class API_fygj:AbstractBillPlugIn + { + //调用API生成费用归集单--本机 + public Boolean SaveBill2() + { + string fbillno = this.View.Model.GetValue("FBillNo").ToString(); + + try + { + var sSql = String.Format("EXEC hw_get_wwdd '" + fbillno + "'"); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + int i = 0; + if (dr.Count > 0) + { + try + { + JObject jsonRoot = new JObject(); + + // NeedUpDateFields: 哪些字段需要更新?为空则表示参数中全部字段,均需要更新 + jsonRoot.Add("NeedUpDateFields", new JArray("")); + + // Model: 单据详细数据参数 + JObject model = new JObject(); + jsonRoot.Add("Model", model); + + // 开始设置单据字段值 + // 必须设置的字段:主键、单据类型、主业务组织,各必录且没有设置默认值的字段 + // 特别注意:字段Key大小写是敏感的,建议从BOS设计器中,直接复制字段的标识属性过来 + + // 单据主键:必须填写,系统据此判断是新增还是修改单据;新增单据,填0 + model.Add("FID", 0); + + //核算体系编码 + JObject FACCTGSYSTEMID = new JObject(); + FACCTGSYSTEMID.Add("FNumber", "KJHSTX01_SYS"); + model.Add("FACCTGSYSTEMID", FACCTGSYSTEMID); + + //核算体组织码 + JObject FACCTGORGID = new JObject(); + FACCTGORGID.Add("FNumber", "107"); + + model.Add("FACCTGORGID", FACCTGORGID); + + //会计政策编码 + JObject FACCTPOLICYID = new JObject(); + FACCTPOLICYID.Add("FNumber", "KJZC02_SYS"); + + model.Add("FACCTPOLICYID", FACCTPOLICYID); + + + ////业务类型 + //model.Add("FBusinessType", "CG");//标准采购 + + + // 开始构建单据体参数:集合参数JArray + + JArray entryRows = new JArray(); + // 把单据体行集合,添加到model中,以单据体Key为标识 + string entityKey = "FEntity"; + model.Add(entityKey, entryRows); + // 通过循环创建单据体行:示例代码仅创建一行 + foreach (var item in dr) + { + // 添加新行,把新行加入到单据体行集合 + JObject entryRow = new JObject(); + entryRows.Add(entryRow); + + + // 给新行,设置关键字段值 + // 单据体主键:必须填写,系统据此判断是新增还是修改行,0是新增 + entryRow.Add("FEntryID", 0); + + //业务组织 + JObject FBIZORGID = new JObject(); + FBIZORGID.Add("FNumber", "107"); + + entryRow.Add("FBIZORGID", FBIZORGID); + + //费用项目编码 + JObject FEXPENSEITEMID = new JObject(); + FEXPENSEITEMID.Add("FNumber", "FYXM04_SYS"); + entryRow.Add("FEXPENSEITEMID", FEXPENSEITEMID); + + //this.Model.SetValue("F_ISSYQ", item[2], i); + //日期 + //entryRow.Add("FDATE", item[0].ToString()); + entryRow.Add("FDATE", "2019-5-31"); + //成本中心编码 + JObject FCOSTCENTERID = new JObject(); + FCOSTCENTERID.Add("FNumber", "CBZX000016"); + + entryRow.Add("FCOSTCENTERID", FCOSTCENTERID); + + + //金额 + entryRow.Add("FAMOUNT", item[1].ToString()); + + + + //产品编号 + JObject FPRODUCTID = new JObject(); + FPRODUCTID.Add("FNumber", item[2].ToString()); + entryRow.Add("FPRODUCTID", FPRODUCTID); + i++; + } + + // 调用Web API接口服务,保存 + object result = WebApiServiceCall.Save(this.Context, "CB_EXPENSECOLLECTION", jsonRoot.ToString()); + + string t = objzjs(result); + + if (strJson(t)) + { + sSql = string.Format("exec hw_fxwgd '{0}'", fbillno); + DBServiceHelper.Execute(this.Context, sSql); + this.View.ShowMessage("操作成功!"); + + return true; + } + else + { + this.View.ShowMessage("操作失败!" + t); + return false; + + } + + } + catch (Exception ex) + { + StringBuilder sb = new StringBuilder(); + sb.AppendLine("程序运行遇到了未知的错误11:"); + sb.Append("错误提示:").AppendLine(ex.Message); + sb.Append("错误堆栈:").AppendLine(ex.StackTrace); + this.View.ShowMessage(sb.ToString()); + return false; + } + } + else + { + this.View.ShowMessage("无数据,请确认后再操作!"); + return false; + } + + } + catch (Exception ex) { this.View.ShowMessage("生成费用归集单时发生错误为:" + ex.Message); return false; } + + + } + //调用API生成费用归集单--汇威 + public Boolean SaveBill() + { + + string fbillno = this.View.Model.GetValue("FBillNo").ToString(); + + try + { + var sSql = String.Format("EXEC hw_get_wwdd '" + fbillno + "'"); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + int i = 0; + if (dr.Count > 0) + { + try + { + JObject jsonRoot = new JObject(); + + // NeedUpDateFields: 哪些字段需要更新?为空则表示参数中全部字段,均需要更新 + jsonRoot.Add("NeedUpDateFields", new JArray("")); + + // Model: 单据详细数据参数 + JObject model = new JObject(); + jsonRoot.Add("Model", model); + + // 开始设置单据字段值 + // 必须设置的字段:主键、单据类型、主业务组织,各必录且没有设置默认值的字段 + // 特别注意:字段Key大小写是敏感的,建议从BOS设计器中,直接复制字段的标识属性过来 + + // 单据主键:必须填写,系统据此判断是新增还是修改单据;新增单据,填0 + model.Add("FID", 0); + + //核算体系编码 + JObject FACCTGSYSTEMID = new JObject(); + FACCTGSYSTEMID.Add("FNumber", "KJHSTX01_SYS"); + model.Add("FACCTGSYSTEMID", FACCTGSYSTEMID); + + //核算体组织码 + JObject FACCTGORGID = new JObject(); + //FACCTGORGID.Add("FNumber", "107"); + FACCTGORGID.Add("FNumber", "100"); + model.Add("FACCTGORGID", FACCTGORGID); + + //会计政策编码 + JObject FACCTPOLICYID = new JObject(); + //FACCTPOLICYID.Add("FNumber", "KJZC02_SYS"); + FACCTPOLICYID.Add("FNumber", "KJZC01_SYS"); + model.Add("FACCTPOLICYID", FACCTPOLICYID); + + + ////业务类型 + //model.Add("FBusinessType", "CG");//标准采购 + + + // 开始构建单据体参数:集合参数JArray + + JArray entryRows = new JArray(); + // 把单据体行集合,添加到model中,以单据体Key为标识 + string entityKey = "FEntity"; + model.Add(entityKey, entryRows); + // 通过循环创建单据体行:示例代码仅创建一行 + foreach (var item in dr) + { + // 添加新行,把新行加入到单据体行集合 + JObject entryRow = new JObject(); + entryRows.Add(entryRow); + + + // 给新行,设置关键字段值 + // 单据体主键:必须填写,系统据此判断是新增还是修改行,0是新增 + entryRow.Add("FEntryID", 0); + + //业务组织 + JObject FBIZORGID = new JObject(); + //FBIZORGID.Add("FNumber", "107"); + FBIZORGID.Add("FNumber", "100"); + entryRow.Add("FBIZORGID", FBIZORGID); + + //费用项目编码 + JObject FEXPENSEITEMID = new JObject(); + FEXPENSEITEMID.Add("FNumber", "FYXM04_SYS"); + entryRow.Add("FEXPENSEITEMID", FEXPENSEITEMID); + + //this.Model.SetValue("F_ISSYQ", item[2], i); + //日期 + entryRow.Add("FDATE", item[0].ToString()); + //entryRow.Add("FDATE", "2019-5-31"); + //成本中心编码 + JObject FCOSTCENTERID = new JObject(); + //FCOSTCENTERID.Add("FNumber", "CBZX000016"); + FCOSTCENTERID.Add("FNumber", "CBZX000049"); + entryRow.Add("FCOSTCENTERID", FCOSTCENTERID); + + + //金额 + entryRow.Add("FAMOUNT", item[1].ToString()); + + + + //产品编号 + JObject FPRODUCTID = new JObject(); + FPRODUCTID.Add("FNumber", item[2].ToString()); + entryRow.Add("FPRODUCTID", FPRODUCTID); + i++; + } + + // 调用Web API接口服务,保存 + var result = WebApiServiceCall.Save(this.Context, "CB_EXPENSECOLLECTION", jsonRoot.ToString()); + + + string t = objzjs(result); + + if (strJson(t)) + { + sSql = string.Format("exec hw_fxwgd '{0}'", fbillno); + DBServiceHelper.Execute(this.Context, sSql); + this.View.ShowMessage("操作成功1!"); + return true; + } + else + { + this.View.ShowMessage("操作失败!" + t); + return false; + + } + + } + catch (Exception ex) + { + StringBuilder sb = new StringBuilder(); + sb.AppendLine("程序运行遇到了未知的错误11:"); + sb.Append("错误提示:").AppendLine(ex.Message); + sb.Append("错误堆栈:").AppendLine(ex.StackTrace); + this.View.ShowMessage(sb.ToString()); + return false; + } + } + else + { + this.View.ShowMessage("无数据,请确认后再操作!"); + return false; + } + + } + catch (Exception ex) { this.View.ShowMessage("生成费用归集单时发生错误为:" + ex.Message); return false; } + + + } + //object转json + public string objzjs(Object obj) + { + JavaScriptSerializer js = new JavaScriptSerializer(); + string myJson = js.Serialize(obj); + return myJson; + } + // 将字符串转换成Json格式显示 + //字符串转json + public bool strJson(string t) + { + string jsonText = t; + // "{"shenzheng":"深圳","beijing":"北京","shanghai":[{"zj1":"zj11","zj2":"zj22"},"zjs"]}"; + + JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);//或者JObject jo = JObject.Parse(jsonText); + //string zone = jo["shenzheng"].ToString();//输出 "深圳" + //string zone_en = jo["shanghai"].ToString();//输出 "[{"zj1":"zj11","zj2":"zj22"},"zjs"]" + //string zj1 = jo["shanghai"][1].ToString();//输出 "zjs" + //Console.WriteLine(jo); + + string tt = jo["Result"].ToString(); + JObject jo1 = (JObject)JsonConvert.DeserializeObject(tt); + string t3 = jo1["ResponseStatus"].ToString(); + JObject jo2 = (JObject)JsonConvert.DeserializeObject(t3); + string t4 = jo2["IsSuccess"].ToString(); + + if (t4.ToLower() == "true") + return true; + else + return false; + } + + + public Boolean SaveBill6() + { + string fbillno = this.View.Model.GetValue("FBillNo").ToString(); + + try + { + var sSql = String.Format("EXEC hw_get_wwdd '" + fbillno + "'"); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + int i = 0; + if (dr.Count > 0) + { + string cwts = "-"; + try + { + string url = "https://5f1nococmwz67jl/K3Cloud/"; + string dbid = "5c85f54f52a132"; + string user = "demo"; + string pwd = "888888"; + + + url = "http://61.145.228.58:9656/k3cloud"; + + dbid = "5e0f100d492605"; + + user = "Hezhiq"; + + pwd = "abc123++"; + + ApiClient client = new ApiClient(url); + var loginResult = client.Login( + dbid, + user, + pwd, + 2052); + string result = "登录失败,请检查与站点地址、数据中心Id,用户名及密码!"; + + // 登陆成功,开始保存数据 + if (loginResult == true) + { + // 开始构建Web API参数对象 + // 参数根对象:包含Creator、NeedUpDateFields、Model这三个子参数 + // using Newtonsoft.Json.Linq; // (需引用Newtonsoft.Json.dll) + JObject jsonRoot = new JObject(); + + // Creator: 创建用户 + //jsonRoot.Add("Creator", "Demo"); + + // NeedUpDateFields: 哪些字段需要更新?为空则表示参数中全部字段,均需要更新 + jsonRoot.Add("NeedUpDateFields", new JArray("")); + + // Model: 单据详细数据参数 + JObject model = new JObject(); + jsonRoot.Add("Model", model); + + // 开始设置单据字段值 + // 必须设置的字段:主键、单据类型、主业务组织,各必录且没有设置默认值的字段 + // 特别注意:字段Key大小写是敏感的,建议从BOS设计器中,直接复制字段的标识属性过来 + + + // 单据主键:必须填写,系统据此判断是新增还是修改单据;新增单据,填0 + model.Add("FID", 0); + + //核算体系编码 + JObject FACCTGSYSTEMID = new JObject(); + FACCTGSYSTEMID.Add("FNumber", "KJHSTX01_SYS"); + model.Add("FACCTGSYSTEMID", FACCTGSYSTEMID); + + //核算体组织码 + JObject FACCTGORGID = new JObject(); + FACCTGORGID.Add("FNumber", "107"); + model.Add("FACCTGORGID", FACCTGORGID); + + //会计政策编码 + JObject FACCTPOLICYID = new JObject(); + FACCTPOLICYID.Add("FNumber", "KJZC02_SYS"); + model.Add("FACCTPOLICYID", FACCTPOLICYID); + + + ////业务类型 + //model.Add("FBusinessType", "CG");//标准采购 + + + // 开始构建单据体参数:集合参数JArray + + JArray entryRows = new JArray(); + // 把单据体行集合,添加到model中,以单据体Key为标识 + string entityKey = "FEntity"; + model.Add(entityKey, entryRows); + // 通过循环创建单据体行:示例代码仅创建一行 + foreach (var item in dr) + { + //string k = item[0].ToString(); + //this.Model.SetValue("F_YGNM", item[0], i); + //this.Model.SetValue("F_ISXYG", item[1], i); + //this.Model.SetValue("F_ISSYQ", item[2], i); + + + + + // 添加新行,把新行加入到单据体行集合 + JObject entryRow = new JObject(); + entryRows.Add(entryRow); + + + // 给新行,设置关键字段值 + // 单据体主键:必须填写,系统据此判断是新增还是修改行 + entryRow.Add("FEntryID", 0); + + //业务组织 + JObject FBIZORGID = new JObject(); + FBIZORGID.Add("FNumber", "107"); + entryRow.Add("FBIZORGID", FBIZORGID); + + //费用项目编码 + JObject FEXPENSEITEMID = new JObject(); + FEXPENSEITEMID.Add("FNumber", "FYXM04_SYS"); + entryRow.Add("FEXPENSEITEMID", FEXPENSEITEMID); + + //this.Model.SetValue("F_ISSYQ", item[2], i); + //日期 + string tm9 = DateTime.Today.ToShortDateString(); + entryRow.Add("FDATE", tm9); + + //成本中心编码 + JObject FCOSTCENTERID = new JObject(); + FCOSTCENTERID.Add("FNumber", "CBZX000016"); + entryRow.Add("FCOSTCENTERID", FCOSTCENTERID); + + + //金额 + entryRow.Add("FAMOUNT", item[1].ToString()); + + + //产品编号 + JObject FPRODUCTID = new JObject(); + FPRODUCTID.Add("FNumber", item[2].ToString()); + entryRow.Add("FPRODUCTID", FPRODUCTID); + i++; + } + + cwts = "准备执行费用归集"+jsonRoot.ToString(); + + // 调用Web API接口服务,保存 + result = client.Execute( + "Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", + new object[] { "CB_EXPENSECOLLECTION", jsonRoot.ToString() }); + } + this.View.ShowMessage("操作成功!"); + return true; + } + catch (Exception ex) + { + StringBuilder sb = new StringBuilder(); + sb.AppendLine("程序运行遇到了未知的错误56:"+cwts); + sb.Append("错误提示:").AppendLine(ex.Message); + sb.Append("错误堆栈:").AppendLine(ex.StackTrace); + this.View.ShowMessage(sb.ToString()); + return false; + } + } + else + { + this.View.ShowMessage("无数据,请确认后再操作!"); + return false; + } + + } + catch (Exception ex) { this.View.ShowMessage("生成费用归集单时发生错误为:" + ex.Message); return false; } + + + } + //单据头菜单点击 + public override void BarItemClick(BarItemClickEventArgs e) + { + base.BarItemClick(e); + if (e.BarItemKey == "tbfygj") + { + SaveBill(); + } + + } + } +} diff --git a/aoyuPlugIn/汇威/API新增单据/add_dj.cs b/aoyuPlugIn/汇威/API新增单据/add_dj.cs new file mode 100644 index 0000000..8c3209e --- /dev/null +++ b/aoyuPlugIn/汇威/API新增单据/add_dj.cs @@ -0,0 +1,150 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; + + +using Kingdee.BOS.Core; + +using Kingdee.BOS.Core.Metadata.ConvertElement; +using Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn; +using Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args; + +using Kingdee.BOS.Core.Metadata.FormElement; + +using Kingdee.BOS.Contracts; +using Kingdee.BOS.App; +namespace aoyuPlugIn +{ + [Description("新增单据")] + public class add_dj: AbstractConvertPlugIn + { + + + /// 主单据体的字段携带完毕,与源单的关联关系创建好之后,触发此事件 + + public override void OnAfterCreateLink(CreateLinkEventArgs e) + { + var targetRows = e.TargetExtendedDataEntities.FindByEntityKey("FEntity"); + + foreach (var targetRow in targetRows) + { + // 获取每行数据,对应的源单行 + var sourceRows = targetRow["ConvertSource"] as List; + } + + // 预先获取一些必要的元数据,后续代码要用到: + // 源单第二单据体 + Entity srcSecondEntity = e.SourceBusinessInfo.GetEntity("FEntity2"); + + // 目标单第一单据体 + Entity mainEntity = e.TargetBusinessInfo.GetEntity("FEntity"); + + // 目标单第二单据体 + Entity secondEntity = e.TargetBusinessInfo.GetEntity("FEntity2"); + + // 目标单关联子单据体 + Entity linkEntity = null; + Form form = e.TargetBusinessInfo.GetForm(); + if (form.LinkSet != null + && form.LinkSet.LinkEntitys != null + && form.LinkSet.LinkEntitys.Count != 0) + { + linkEntity = e.TargetBusinessInfo.GetEntity( + form.LinkSet.LinkEntitys[0].Key); + } + + if (linkEntity == null) + { + return; + } + + // 获取生成的全部下游单据 + ExtendedDataEntity[] billDataEntitys = e.TargetExtendedDataEntities.FindByEntityKey("FBillHead"); + + // 对下游单据,逐张单据进行处理 + foreach (var item in billDataEntitys) + { + DynamicObject dataObject = item.DataEntity; + + // 定义一个集合,用于收集本单对应的源单内码 + HashSet srcBillIds = new HashSet(); + + // 开始到主单据体中,读取关联的源单内码 + DynamicObjectCollection mainEntryRows = + mainEntity.DynamicProperty.GetValue(dataObject) as DynamicObjectCollection; + foreach (var mainEntityRow in mainEntryRows) + { + DynamicObjectCollection linkRows = + linkEntity.DynamicProperty.GetValue(mainEntityRow) as DynamicObjectCollection; + foreach (var linkRow in linkRows) + { + long srcBillId = Convert.ToInt64(linkRow["SBillId"]); + if (srcBillId != 0 + && srcBillIds.Contains(srcBillId) == false) + { + srcBillIds.Add(srcBillId); + } + } + } + if (srcBillIds.Count == 0) + { + continue; + } + // 开始加载源单第二单据体上的字段 + + // 确定需要加载的源单字段(仅加载需要携带的字段) + List selector = new List(); + selector.Add(new SelectorItemInfo("F_JD_Text")); + // TODO: 继续添加其他需要携带的字段,示例代码略 + // 设置过滤条件 + string filter = string.Format(" {0} IN ({1}) ", + e.SourceBusinessInfo.GetForm().PkFieldName, + string.Join(",", srcBillIds)); + OQLFilter filterObj = OQLFilter.CreateHeadEntityFilter(filter); + + // 读取源单 + IViewService viewService = ServiceHelper.GetService(); + var srcBillObjs = viewService.Load(this.Context, + e.SourceBusinessInfo.GetForm().Id, + selector, + filterObj); + + // 开始把源单单据体数据,填写到目标单上 + DynamicObjectCollection secondEntryRows = + secondEntity.DynamicProperty.GetValue(dataObject) as DynamicObjectCollection; + secondEntryRows.Clear(); // 删除空行 + + foreach (var srcBillObj in srcBillObjs) + { + DynamicObjectCollection srcEntryRows = + srcSecondEntity.DynamicProperty.GetValue(srcBillObj) as DynamicObjectCollection; + + foreach (var srcEntryRow in srcEntryRows) + { + // 目标单添加新行,并接受源单字段值 + DynamicObject newRow = new DynamicObject(secondEntity.DynamicObjectType); + secondEntryRows.Add(newRow); + // 填写字段值 + newRow["F_JD_Text"] = srcEntryRow["F_JD_Text"]; + // TODO: 逐个填写其他字段值,示例代码略 + } + } + } + } + + } +} diff --git a/aoyuPlugIn/汇威/JJ_show_yggzmx.cs b/aoyuPlugIn/汇威/JJ_show_yggzmx.cs new file mode 100644 index 0000000..cfa80fc --- /dev/null +++ b/aoyuPlugIn/汇威/JJ_show_yggzmx.cs @@ -0,0 +1,95 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.ComponentModel; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; + +using Kingdee.BOS; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.ServiceHelper; + +namespace aoyuPlugIn +{ + + [Description("显示员工工资明细")] + public class JJ_show_yggzmx : AbstractDynamicFormPlugIn + { + string _ygID = ""; + string _month = ""; + string _year = ""; + string _day = ""; + public override void AfterBindData(EventArgs e) + { + base.AfterBindData(e); + try + { + Int64 ygID = Convert.ToInt64(this.View.OpenParameter.GetCustomParameter("ygid")); + _ygID = ygID.ToString(); + string y = this.View.OpenParameter.GetCustomParameter("FYEAR").ToString(); + _year = y; + string m = this.View.OpenParameter.GetCustomParameter("FMONTH").ToString(); + _month = m; + _day = this.View.OpenParameter.GetCustomParameter("FDAY").ToString(); + + loadData(); + + + + } + catch (Exception ex) { this.View.ShowMessage("加载数据时发生错误中为:" + ex.Message); } + //this.View.ShowMessage(mid.ToString()); + + } + void loadData() + { + show_yg_mx();//按员工显示 + + } + //按员工显示 + //按日期显示 + //填写员工姓名 + void show_yg_mx() + { + try + { + if (_day != "") return; + this.View.Model.SetValue("FRG", 0); + this.View.UpdateView("FRG"); + + this.View.Model.SetValue("FYGNO", _ygID); + this.View.UpdateView("FYGNO"); + this.View.UpdateView("FYGNM"); + this.View.Model.SetValue("FYEAR", _year); + this.View.UpdateView("FYEAR"); + this.View.Model.SetValue("FMONTH", _month); + this.View.UpdateView("FMONTH"); + } + catch (Exception ex) { this.View.ShowMessage("加载数据时发生错误中为:" + ex.Message); } + } + } +} diff --git a/aoyuPlugIn/汇威/MJ_jdhb.cs b/aoyuPlugIn/汇威/MJ_jdhb.cs new file mode 100644 index 0000000..5dbfa57 --- /dev/null +++ b/aoyuPlugIn/汇威/MJ_jdhb.cs @@ -0,0 +1,54 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; + +namespace aoyuPlugIn +{ + [Description("模具进度汇报反写进度单")] + public class MJ_jdhb : AbstractBillPlugIn + { + //表单菜单事件 + public override void BarItemClick(BarItemClickEventArgs e) + { + base.BarItemClick(e); + //this.View.ShowMessage("Hello World:" + e.BarItemKey.ToString()); + string t = ""; + if (e.BarItemKey == "tbSplitApprove"||e.BarItemKey== "tbApprove")//审核 + { + t =this.View.Model.GetValue("FBillNo").ToString(); + fxjdb(t, "1"); + + }else if (e.BarItemKey == "tbReject")//反审核 + { + t = this.View.Model.GetValue("FBillNo").ToString(); + fxjdb(t, "0"); + } + } + //反写进度表 + void fxjdb(string fbillno, string issh) + { + try + { + var sSql = String.Format("EXEC hw_mj_jdhbfxjdd " + fbillno + "," + issh); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + } + catch (Exception ex) { this.View.ShowMessage("反写进度表时发生错误为:" + ex.Message); } + } + + + } +} diff --git a/aoyuPlugIn/汇威/MJ_jdhb_lb.cs b/aoyuPlugIn/汇威/MJ_jdhb_lb.cs new file mode 100644 index 0000000..9cd1d90 --- /dev/null +++ b/aoyuPlugIn/汇威/MJ_jdhb_lb.cs @@ -0,0 +1,78 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.List.PlugIn; + +namespace aoyuPlugIn +{ + [Description("模具进度汇报列表反写进度单")] + public class MJ_jdhb_lb:AbstractListPlugIn + { + void fxjdb(string issh) + { + try + { + //string fbillno = ""; + if(this.ListView.SelectedRowsInfo.Count >0) + { + for(int i = 0; i < this.ListView.SelectedRowsInfo.Count; i++) + { + //取指定行单据编号 + string fbillno = this.ListView.SelectedRowsInfo[i].BillNo; + string zt = this.ListView.SelectedRowsInfo[i].DataRow["FDOCUMENTSTATUS"].ToString(); + if (issh == "1") + { + if (zt == "D" || zt == "B") + { + var sSql = String.Format("EXEC hw_mj_jdhbfxjdd " + fbillno + "," + issh); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + } + } + else + { + if (zt == "C") + { + var sSql = String.Format("EXEC hw_mj_jdhbfxjdd " + fbillno + "," + issh); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + } + } + + + } + } + } + catch (Exception ex) { this.View.ShowMessage("反写进度表时发生错误为:" + ex.Message); } + } + //列表菜单事件 + public override void AfterBarItemClick(AfterBarItemClickEventArgs e) + { + base.AfterBarItemClick(e); + + if (e.BarItemKey == "tbSplitApprove" || e.BarItemKey == "tbApprove")//审核 + { + + fxjdb("1"); + + } + else if (e.BarItemKey == "tbReject")//反审核 + { + + fxjdb("0"); + } + } + } +} diff --git a/aoyuPlugIn/汇威/MJ_qtyf.cs b/aoyuPlugIn/汇威/MJ_qtyf.cs new file mode 100644 index 0000000..4ce28e1 --- /dev/null +++ b/aoyuPlugIn/汇威/MJ_qtyf.cs @@ -0,0 +1,206 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Newtonsoft.Json.Linq; +using Kingdee.BOS.WebApi.Client; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; + +namespace aoyuPlugIn +{ + [Description("其他应付生成费用归集")] + public class MJ_qtyf : AbstractBillPlugIn + { + //调用API生成费用归集单 + public Boolean SaveBill() + { + string fbillno = this.View.Model.GetValue("FBillNo").ToString(); + + try + { + var sSql = String.Format("EXEC hw_get_qtyf '" + fbillno + "'"); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + int i = 0; + if (dr.Count > 0) + { + try + { + string url = "https://hui-wei.ik3cloud.com/K3cloud/"; + string dbid = "5c85f54f52a132"; + string user = "wwj01"; + string pwd = "wwj@123456"; + + + url = "http://61.145.228.58:9656/k3cloud"; + + dbid = "5e0f100d492605"; + + user = "Hezhiq"; + + pwd = "abc123++"; + + ApiClient client = new ApiClient(url); + var loginResult = client.Login( + dbid, + user, + pwd, + 2052); + string result = "登录失败,请检查与站点地址、数据中心Id,用户名及密码!"; + + // 登陆成功,开始保存数据 + if (loginResult == true) + { + // 开始构建Web API参数对象 + // 参数根对象:包含Creator、NeedUpDateFields、Model这三个子参数 + // using Newtonsoft.Json.Linq; // (需引用Newtonsoft.Json.dll) + JObject jsonRoot = new JObject(); + + // Creator: 创建用户 + //jsonRoot.Add("Creator", "Demo"); + + // NeedUpDateFields: 哪些字段需要更新?为空则表示参数中全部字段,均需要更新 + jsonRoot.Add("NeedUpDateFields", new JArray("")); + + // Model: 单据详细数据参数 + JObject model = new JObject(); + jsonRoot.Add("Model", model); + + // 开始设置单据字段值 + // 必须设置的字段:主键、单据类型、主业务组织,各必录且没有设置默认值的字段 + // 特别注意:字段Key大小写是敏感的,建议从BOS设计器中,直接复制字段的标识属性过来 + + + // 单据主键:必须填写,系统据此判断是新增还是修改单据;新增单据,填0 + model.Add("FID", 0); + + //核算体系编码 + JObject FACCTGSYSTEMID = new JObject(); + FACCTGSYSTEMID.Add("FNumber", "KJHSTX01_SYS"); + model.Add("FACCTGSYSTEMID", FACCTGSYSTEMID); + + //核算体组织码 + JObject FACCTGORGID = new JObject(); + FACCTGORGID.Add("FNumber", "107"); + model.Add("FACCTGORGID", FACCTGORGID); + + //会计政策编码 + JObject FACCTPOLICYID = new JObject(); + FACCTPOLICYID.Add("FNumber", "KJZC02_SYS"); + model.Add("FACCTPOLICYID", FACCTPOLICYID); + + + ////业务类型 + //model.Add("FBusinessType", "CG");//标准采购 + + + // 开始构建单据体参数:集合参数JArray + + JArray entryRows = new JArray(); + // 把单据体行集合,添加到model中,以单据体Key为标识 + string entityKey = "FEntity"; + model.Add(entityKey, entryRows); + // 通过循环创建单据体行:示例代码仅创建一行 + foreach (var item in dr) + { + //string k = item[0].ToString(); + //this.Model.SetValue("F_YGNM", item[0], i); + //this.Model.SetValue("F_ISXYG", item[1], i); + //this.Model.SetValue("F_ISSYQ", item[2], i); + + + + + // 添加新行,把新行加入到单据体行集合 + JObject entryRow = new JObject(); + entryRows.Add(entryRow); + + + // 给新行,设置关键字段值 + // 单据体主键:必须填写,系统据此判断是新增还是修改行 + entryRow.Add("FEntryID", 0); + + //业务组织 + JObject FBIZORGID = new JObject(); + FBIZORGID.Add("FNumber", "107"); + entryRow.Add("FBIZORGID", FBIZORGID); + + //费用项目编码 + JObject FEXPENSEITEMID = new JObject(); + FEXPENSEITEMID.Add("FNumber", "FYXM04_SYS"); + entryRow.Add("FEXPENSEITEMID", FEXPENSEITEMID); + + //this.Model.SetValue("F_ISSYQ", item[2], i); + //日期 + entryRow.Add("FDATE", item[1].ToString()); + + //成本中心编码 + JObject FCOSTCENTERID = new JObject(); + FCOSTCENTERID.Add("FNumber", "CBZX000016"); + entryRow.Add("FCOSTCENTERID", FCOSTCENTERID); + + + //金额 + entryRow.Add("FAMOUNT", item[1].ToString()); + + + //产品编号 + JObject FPRODUCTID = new JObject(); + FPRODUCTID.Add("FNumber", item[2].ToString()); + entryRow.Add("FPRODUCTID", FPRODUCTID); + i++; + } + + // 调用Web API接口服务,保存 + result = client.Execute( + "Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", + new object[] { "CB_EXPENSECOLLECTION", jsonRoot.ToString() }); + } + this.View.ShowMessage("操作成功!"); + return true; + } + catch (Exception ex) + { + StringBuilder sb = new StringBuilder(); + sb.AppendLine("程序运行遇到了未知的错误:"); + sb.Append("错误提示:").AppendLine(ex.Message); + sb.Append("错误堆栈:").AppendLine(ex.StackTrace); + this.View.ShowMessage(sb.ToString()); + return false; + } + } + else + { + this.View.ShowMessage("无数据,请确认后再操作!"); + return false; + } + + } + catch (Exception ex) { this.View.ShowMessage("生成费用归集单时发生错误为:" + ex.Message); return false; } + + + } + //单据头菜单点击 + public override void BarItemClick(BarItemClickEventArgs e) + { + base.BarItemClick(e); + if (e.BarItemKey == "tbfygj") + { + SaveBill(); + } + + } + } +} diff --git a/aoyuPlugIn/汇威/MJ_xtqtrk.cs b/aoyuPlugIn/汇威/MJ_xtqtrk.cs new file mode 100644 index 0000000..6ca7fae --- /dev/null +++ b/aoyuPlugIn/汇威/MJ_xtqtrk.cs @@ -0,0 +1,553 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.K3.Core.MFG.EntityHelper; +using Kingdee.K3.FIN.App.Core; +using System.ComponentModel; +using Kingdee.BOS; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core; +using Kingdee.BOS.Core.Const; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.Operation; +using Kingdee.BOS.Core.List; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.ConvertElement; +using Kingdee.BOS.Core.Metadata.ConvertElement.ServiceArgs; +using Kingdee.BOS.Core.Interaction; +using Kingdee.BOS.Core.Validation; +using Kingdee.BOS.Contracts; +using Kingdee.BOS.App; +using Kingdee.BOS.Orm; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.App.Data; +using System.Data; +using System.Collections; +using Kingdee.BOS.Core.Metadata.EntityElement; + +namespace aoyuPlugIn +{ + //其他出库单审核时自动生成其他出库单,在审核操作的服务插件中 + [Description("自动生成其他入库单")]//自动下推生产审核的调入调出单STK_MISCELLANEOUS + public class MJ_xtqtrk : AbstractOperationServicePlugIn + { + private string entityKey = "FEntity";//其他出库单单据标识 + int rowIndex; + string scddfid; + int scddRow; + //public override void OnPreparePropertys(PreparePropertysEventArgs e) + //{ + // base.OnPreparePropertys(e); + // e.FieldKeys.Add("F_QBOY_JKDH");//缴库单号 + // e.FieldKeys.Add("F_QBOY_YDEntryID");//生产订单单据体ID + // e.FieldKeys.Add("F_QBOY_YDHH");//生产订单行号 + // e.FieldKeys.Add("F_QBOY_SKYTLed");//已退量 + // e.FieldKeys.Add("F_QBOY_SKL");//水口量 + // e.FieldKeys.Add("F_QBOY_SKYTL");//应退量 + + + //} + + /// + /// 审核操作完成,单据状态已经更改,但是还没有提交事务时,触发此事件: + /// + /// + /// + /// 因为此事件触发时,还在事务保护中,因此适合进行数据同步; + /// 审核后自动下推,如果下推失败,需要放弃审核,因此,放在此事件中处理(事务中) + /// + public override void EndOperationTransaction(EndOperationTransactionArgs e) + { + + Entity entityObj = this.BusinessInfo.GetEntity(entityKey); + foreach (DynamicObject d in e.DataEntitys) + { + if (d["BillEntry"] == null) + { + return; + } + + + DynamicObjectCollection FentryRow = d["BillEntry"] as DynamicObjectCollection; + //scddfid = FentryRow[0][7].ToString();//生产订单单据体ID + //scddRow = Convert.ToInt32(FentryRow[0][6]);//生产订单行号 + + //if (Convert.ToDouble(FentryRow[0][5]) + Convert.ToDouble(FentryRow[0][4]) < Convert.ToDouble(FentryRow[0][3])) + //{ + // return; + //} + + //String sSql2 = String.Format(@" select FID FROM T_PRD_MO where FBILLNO='{0}' ", FentryRow[0][2]); + //DynamicObjectCollection dr = DBUtils.ExecuteDynamicObject(this.Context, sSql2); + + + + + this.DoPush("STK_MisDelivery", "STK_MISCELLANEOUS", (from p in e.DataEntitys select Convert.ToInt64(p[0])).ToList(), e); + //using (IDataReader dr = DBUtils.ExecuteReader(this.Context, sSql2)) + //{ + + // while (dr.Read()) + // { + // var scddfid = Convert.ToInt64(dr["F_PCDN_INMD"]); + // //this.DoPush("k246ba461a1494a348dc7c9996f609b60", "PRD_INSTOCK", + // // (from p in e.DataEntitys select Convert.ToInt64(p[0])).ToList(), e); + // } + // dr.Close(); + + + //} + } + } + + + //this.DoPush("k246ba461a1494a348dc7c9996f609b60", "PRD_INSTOCK", + // (from p in e.DataEntitys select Convert.ToInt64(p[0])).ToList(), e); + + + + /// + /// 自动下推并保存 + /// + /// 源单FormId + /// 目标单FormId + /// 源单内码 + private void DoPush(string sourceFormId, string targetFormId, List sourceBillIds, EndOperationTransactionArgs e) + { + // 获取源单与目标单的转换规则 + IConvertService convertService = ServiceHelper.GetService(); + var rules = convertService.GetConvertRules(this.Context, sourceFormId, targetFormId); + if (rules == null || rules.Count == 0) + { + throw new KDBusinessException("", string.Format("未找到{0}到{1}之间,启用的转换规则,无法自动下推!", sourceFormId, targetFormId)); + } + // 取勾选了默认选项的规则 + // var rule = rules.FirstOrDefault(t => t.IsDefault); + // 如果无默认规则,则取第一个 + // if (rule == null) + //{ + // rule = rules[0]; + // } + //门店至运营中心,或运营中心至门店 + + //if (true && rules.Count > 0) + if (true && rules.Count > 1) + { + //var rule = rules[0]; + var rule = rules[1]; + // 开始构建下推参数: + // 待下推的源单数据行 + List srcSelectedRows = new List(); + + + foreach (var billId in sourceBillIds) + {// 把待下推的源单内码,逐个创建ListSelectedRow对象,添加到集合中 + srcSelectedRows.Add(new ListSelectedRow(billId.ToString(), string.Empty, 0, sourceFormId)); + + + // 特别说明:上述代码,是整单下推; + // 如果需要指定待下推的单据体行,请参照下句代码,在ListSelectedRow中,指定EntryEntityKey以及EntryId + //srcSelectedRows.Add(new ListSelectedRow(billId.ToString(), entityId, 0, sourceFormId) { EntryEntityKey = "FEntity" }); + } + + + + + + + // 指定目标单单据类型:情况比较复杂,没有合适的案例做参照,示例代码暂略,直接留空,会下推到默认的单据类型 + string targetBillTypeId = string.Empty; + // 指定目标单据主业务组织:情况更加复杂,需要涉及到业务委托关系,缺少合适案例,示例代码暂略 + // 建议在转换规则中,配置好主业务组织字段的映射关系:运行时,由系统根据映射关系,自动从上游单据取主业务组织,避免由插件指定 + long targetOrgId = 0; + // 自定义参数字典:把一些自定义参数,传递到转换插件中;转换插件再根据这些参数,进行特定处理 + Dictionary custParams = new Dictionary(); + // 组装下推参数对象 + PushArgs pushArgs = new PushArgs(rule, srcSelectedRows.ToArray()) + { + TargetBillTypeId = targetBillTypeId, + TargetOrgId = targetOrgId, + CustomParams = custParams + }; + + OperateOption option = OperateOption.Create(); + option.SetVariableValue(BOSConst.CST_ConvertValidatePermission, true); + // 调用下推服务,生成下游单据数据包 + ConvertOperationResult convResult = convertService.Push(this.Context, pushArgs, OperateOption.Create()); + + // 开始处理下推结果: + // 获取下推生成的下游单据数据包 + DynamicObject[] destObjs = (from p in convResult.TargetDataEntities select p.DataEntity).ToArray(); + if (destObjs.Length == 0) + { + // 未下推成功目标单,抛出错误,中断审核 + throw new KDBusinessException("", string.Format("由{0}自动下推{1},没有成功生成数据包,自动下推失败!", sourceFormId, targetFormId)); + } + + // 对下游单据数据包,进行适当的修订,以避免关键字段为空,自动保存失败 + // 示例代码略 + // 读取目标单据元数据 + IMetaDataService metaService = ServiceHelper.GetService(); + FormMetadata destFormMetadata = metaService.Load(this.Context, targetFormId) as FormMetadata; + // 构建保存操作参数:设置操作选项值,忽略交互提示 + OperateOption saveOption = OperateOption.Create(); + // 忽略全部需要交互性质的提示,直接保存; + saveOption.SetIgnoreWarning(true); // 忽略交互提示 + saveOption.SetInteractionFlag(this.Option.GetInteractionFlag()); // 如果有交互,传入用户选择的交互结果 + // using Kingdee.BOS.Core.Interaction; + saveOption.SetIgnoreInteractionFlag(this.Option.GetIgnoreInteractionFlag()); + + // 上一步操作成功的目标单 + List lastSuccessIdLst = new List(); + // 本操作成功的目标单 + List successIdLst = new List(); + // 操作失败的目标单 + List failedobjs = new List(); + // 操作结果 + IOperationResult result = new OperationResult(); + // 错误信息 + List errorLst = new List(); + + + ////////////////////////////// 暂存 ////////////////////////////// + IDraftService service = Kingdee.BOS.Contracts.ServiceFactory.GetService(this.Context); + IOperationResult innerResult = service.Draft(this.Context, destFormMetadata.BusinessInfo, destObjs); + // 暂存成功的目标单 + successIdLst = innerResult.OperateResult.Select(o => o.PKValue).Distinct().ToList(); + // 暂存不通过的目标单 + failedobjs = destObjs.Where(o => !successIdLst.Contains(o.GetDynamicObjectItemValue("Id"))).ToList(); + if (failedobjs != null && !failedobjs.IsEmpty()) + { + errorLst.Add(new ValidationErrorInfo("", "Id", 0, 0, "DraftError", string.Format("{0}暂存失败:{1}", + string.Join(",", failedobjs.Select(o => o.GetDynamicObjectItemValue("BillNo"))), string.Join("\n", innerResult.ValidationErrors.Select(o => o.Message))), "", ErrorLevel.Error)); + } + // 暂存不通过,则操作失败 + if (successIdLst.IsEmpty()) + { + result.IsSuccess = false; + } + e.DataEntitys = e.DataEntitys.Where(o => successIdLst.Contains(o.GetDynamicObjectItemValue("Id"))).ToArray(); + ////////////////////////////// 保存 ////////////////////////////// + if (!successIdLst.IsEmpty()) + { + lastSuccessIdLst = successIdLst; + innerResult = AppServiceContext.SaveService.Save(this.Context, destFormMetadata.BusinessInfo, destObjs.Where(o => successIdLst.Contains(o.GetDynamicObjectItemValue("Id"))).ToArray(), option); + // 保存成功的目标单 + successIdLst = innerResult.OperateResult.Select(o => o.PKValue).Distinct().ToList(); + // 校验不通过的目标单 + failedobjs = destObjs.Where(o => lastSuccessIdLst.Contains(o.GetDynamicObjectItemValue("Id")) + && !successIdLst.Contains(o.GetDynamicObjectItemValue("Id"))).ToList(); + if (failedobjs != null && !failedobjs.IsEmpty()) + { + errorLst.Add(new ValidationErrorInfo("", "Id", 0, 0, "SaveError", string.Format("{0}保存失败,已暂存:{1}", + string.Join(",", failedobjs.Select(o => o.GetDynamicObjectItemValue("BillNo"))), string.Join("\n", innerResult.ValidationErrors.Select(o => o.Message))), "", ErrorLevel.Error)); + } + } + + + + + + + ////////////////////////////// 提交 ////////////////////////////// + if (!successIdLst.IsEmpty()) + { + lastSuccessIdLst = successIdLst; + innerResult = AppServiceContext.SubmitService.Submit(this.Context, destFormMetadata.BusinessInfo, successIdLst.ToArray(), "Submit", option); + // 提交成功的目标单 + successIdLst = innerResult.OperateResult.Select(o => o.PKValue).Distinct().ToList(); + // 校验不通过的目标单 + failedobjs = destObjs.Where(o => lastSuccessIdLst.Contains(o.GetDynamicObjectItemValue("Id")) + && !successIdLst.Contains(o.GetDynamicObjectItemValue("Id"))).ToList(); + if (failedobjs != null && !failedobjs.IsEmpty()) + { + errorLst.Add(new ValidationErrorInfo("", "Id", 0, 0, "SubmitError", string.Format("{0}提交失败,已保存:{1}", + string.Join(",", failedobjs.Select(o => o.GetDynamicObjectItemValue("BillNo"))), string.Join("\n", innerResult.ValidationErrors.Select(o => o.Message))), "", ErrorLevel.Error)); + } + } + ////////////////////////////// 审核 ////////////////////////////// + if (!successIdLst.IsEmpty()) + { + lastSuccessIdLst = successIdLst; + List> pkIds = new List>(); + foreach (var o in successIdLst) + { + pkIds.Add(new KeyValuePair(o, "")); + } + //审核 + List paraAudit = new List(); + //1审核通过 + paraAudit.Add("1"); + //审核意见 + paraAudit.Add(""); + innerResult = AppServiceContext.SetStatusService.SetBillStatus(this.Context, destFormMetadata.BusinessInfo, pkIds, paraAudit, "Audit", option); + // 审核成功的目标单 + successIdLst = innerResult.OperateResult.Select(o => o.PKValue).Distinct().ToList(); + // 审核不通过的目标单 + failedobjs = destObjs.Where(o => lastSuccessIdLst.Contains(o.GetDynamicObjectItemValue("Id")) + && !successIdLst.Contains(o.GetDynamicObjectItemValue("Id"))).ToList(); + if (failedobjs != null && !failedobjs.IsEmpty()) + { + errorLst.Add(new ValidationErrorInfo("", "Id", 0, 0, "AuditError", string.Format("{0}审核失败,已提交:{1}", + string.Join(",", failedobjs.Select(o => o.GetDynamicObjectItemValue("BillNo"))), string.Join("\n", innerResult.ValidationErrors.Select(o => o.Message))), "", ErrorLevel.Error)); + } + } + ////////////////////////////// 构造错误信息 ////////////////////////////// + if (!errorLst.IsNullOrEmpty()) + { + result.ValidationErrors.AddRange(errorLst); + } + // 将操作结果合并到空操作结果中 + this.OperationResult.IsSuccess = result.IsSuccess; + if (!this.OperationResult.IsSuccess) + { + this.OperationResult.ValidationErrors.Add(new ValidationErrorInfo("", "Id", 0, 0, "Error", string.Format("自动转换失败"), "", ErrorLevel.Error)); + } + + // 调用保存服务,自动保存 + // ISaveService saveService = ServiceHelper.GetService(); + // var saveResult = saveService.Save(this.Context, targetBillMeta.BusinessInfo, targetBillObjs, saveOption, "Save"); + // 判断自动保存结果:只有操作成功,才会继续 + // if (!this.CheckOpResult(saveResult, saveOption)) + // { + // throw new KDBusinessException("", string.Format("由{0}自动下推{1},自动下推失败!", sourceFormId, targetFormId)); + // } + } + + //if (true && rules.Count > 1) + if (true && rules.Count > 0) + { + //var rule = rules[1]; + var rule = rules[0]; + // 开始构建下推参数: + // 待下推的源单数据行 + // 开始构建下推参数: + // 待下推的源单数据行 + List srcSelectedRows = new List(); + foreach (var billId in sourceBillIds) + {// 把待下推的源单内码,逐个创建ListSelectedRow对象,添加到集合中 + srcSelectedRows.Add(new ListSelectedRow(billId.ToString(), string.Empty, 0, sourceFormId)); + + // 特别说明:上述代码,是整单下推; + // 如果需要指定待下推的单据体行,请参照下句代码,在ListSelectedRow中,指定EntryEntityKey以及EntryId + //srcSelectedRows.Add(new ListSelectedRow(billId.ToString(), scddfid, 0, sourceFormId) { EntryEntityKey = "FTreeEntity" }); + //srcSelectedRows.Add(new ListSelectedRow(billId.ToString(), entityId, 0, sourceFormId) { EntryEntityKey = "FEntity" }); + } + + + + + + + + + + + + + + + + + + // 指定目标单单据类型:情况比较复杂,没有合适的案例做参照,示例代码暂略,直接留空,会下推到默认的单据类型 + string targetBillTypeId = string.Empty; + // 指定目标单据主业务组织:情况更加复杂,需要涉及到业务委托关系,缺少合适案例,示例代码暂略 + // 建议在转换规则中,配置好主业务组织字段的映射关系:运行时,由系统根据映射关系,自动从上游单据取主业务组织,避免由插件指定 + long targetOrgId = 0; + // 自定义参数字典:把一些自定义参数,传递到转换插件中;转换插件再根据这些参数,进行特定处理 + Dictionary custParams = new Dictionary(); + // 组装下推参数对象 + PushArgs pushArgs = new PushArgs(rule, srcSelectedRows.ToArray()) + { + TargetBillTypeId = targetBillTypeId, + TargetOrgId = targetOrgId, + CustomParams = custParams + }; + + OperateOption option = OperateOption.Create(); + option.SetVariableValue(BOSConst.CST_ConvertValidatePermission, true); + // 调用下推服务,生成下游单据数据包 + ConvertOperationResult convResult = convertService.Push(this.Context, pushArgs, OperateOption.Create()); + + // 开始处理下推结果: + // 获取下推生成的下游单据数据包 + DynamicObject[] destObjs = (from p in convResult.TargetDataEntities select p.DataEntity).ToArray(); + if (destObjs.Length == 0) + { + // 未下推成功目标单,抛出错误,中断审核 + throw new KDBusinessException("", string.Format("由{0}自动下推{1},没有成功生成数据包,自动下推失败!", sourceFormId, targetFormId)); + } + + // 对下游单据数据包,进行适当的修订,以避免关键字段为空,自动保存失败 + // 示例代码略 + // 读取目标单据元数据 + IMetaDataService metaService = ServiceHelper.GetService(); + FormMetadata destFormMetadata = metaService.Load(this.Context, targetFormId) as FormMetadata; + // 构建保存操作参数:设置操作选项值,忽略交互提示 + OperateOption saveOption = OperateOption.Create(); + // 忽略全部需要交互性质的提示,直接保存; + saveOption.SetIgnoreWarning(true); // 忽略交互提示 + saveOption.SetInteractionFlag(this.Option.GetInteractionFlag()); // 如果有交互,传入用户选择的交互结果 + // using Kingdee.BOS.Core.Interaction; + saveOption.SetIgnoreInteractionFlag(this.Option.GetIgnoreInteractionFlag()); + + // 上一步操作成功的目标单 + List lastSuccessIdLst = new List(); + // 本操作成功的目标单 + List successIdLst = new List(); + // 操作失败的目标单 + List failedobjs = new List(); + // 操作结果 + IOperationResult result = new OperationResult(); + // 错误信息 + List errorLst = new List(); + + + ////////////////////////////// 暂存 ////////////////////////////// + IDraftService service = Kingdee.BOS.Contracts.ServiceFactory.GetService(this.Context); + IOperationResult innerResult = service.Draft(this.Context, destFormMetadata.BusinessInfo, destObjs); + // 暂存成功的目标单 + successIdLst = innerResult.OperateResult.Select(o => o.PKValue).Distinct().ToList(); + // 暂存不通过的目标单 + failedobjs = destObjs.Where(o => !successIdLst.Contains(o.GetDynamicObjectItemValue("Id"))).ToList(); + if (failedobjs != null && !failedobjs.IsEmpty()) + { + errorLst.Add(new ValidationErrorInfo("", "Id", 0, 0, "DraftError", string.Format("{0}暂存失败:{1}", + string.Join(",", failedobjs.Select(o => o.GetDynamicObjectItemValue("BillNo"))), string.Join("\n", innerResult.ValidationErrors.Select(o => o.Message))), "", ErrorLevel.Error)); + } + // 暂存不通过,则操作失败 + if (successIdLst.IsEmpty()) + { + result.IsSuccess = false; + } + e.DataEntitys = e.DataEntitys.Where(o => successIdLst.Contains(o.GetDynamicObjectItemValue("Id"))).ToArray(); + ////////////////////////////// 保存 ////////////////////////////// + if (!successIdLst.IsEmpty()) + { + lastSuccessIdLst = successIdLst; + innerResult = AppServiceContext.SaveService.Save(this.Context, destFormMetadata.BusinessInfo, destObjs.Where(o => successIdLst.Contains(o.GetDynamicObjectItemValue("Id"))).ToArray(), option); + // 保存成功的目标单 + successIdLst = innerResult.OperateResult.Select(o => o.PKValue).Distinct().ToList(); + // 校验不通过的目标单 + failedobjs = destObjs.Where(o => lastSuccessIdLst.Contains(o.GetDynamicObjectItemValue("Id")) + && !successIdLst.Contains(o.GetDynamicObjectItemValue("Id"))).ToList(); + if (failedobjs != null && !failedobjs.IsEmpty()) + { + errorLst.Add(new ValidationErrorInfo("", "Id", 0, 0, "SaveError", string.Format("{0}保存失败,已暂存:{1}", + string.Join(",", failedobjs.Select(o => o.GetDynamicObjectItemValue("BillNo"))), string.Join("\n", innerResult.ValidationErrors.Select(o => o.Message))), "", ErrorLevel.Error)); + } + } + ////////////////////////////// 提交 ////////////////////////////// + if (!successIdLst.IsEmpty()) + { + lastSuccessIdLst = successIdLst; + innerResult = AppServiceContext.SubmitService.Submit(this.Context, destFormMetadata.BusinessInfo, successIdLst.ToArray(), "Submit", option); + // 提交成功的目标单 + successIdLst = innerResult.OperateResult.Select(o => o.PKValue).Distinct().ToList(); + // 校验不通过的目标单 + failedobjs = destObjs.Where(o => lastSuccessIdLst.Contains(o.GetDynamicObjectItemValue("Id")) + && !successIdLst.Contains(o.GetDynamicObjectItemValue("Id"))).ToList(); + if (failedobjs != null && !failedobjs.IsEmpty()) + { + errorLst.Add(new ValidationErrorInfo("", "Id", 0, 0, "SubmitError", string.Format("{0}提交失败,已保存:{1}", + string.Join(",", failedobjs.Select(o => o.GetDynamicObjectItemValue("BillNo"))), string.Join("\n", innerResult.ValidationErrors.Select(o => o.Message))), "", ErrorLevel.Error)); + } + } + ////////////////////////////// 审核 ////////////////////////////// + if (!successIdLst.IsEmpty()) + { + lastSuccessIdLst = successIdLst; + List> pkIds = new List>(); + foreach (var o in successIdLst) + { + pkIds.Add(new KeyValuePair(o, "")); + } + //审核 + List paraAudit = new List(); + //1审核通过 + paraAudit.Add("1"); + //审核意见 + paraAudit.Add(""); + innerResult = AppServiceContext.SetStatusService.SetBillStatus(this.Context, destFormMetadata.BusinessInfo, pkIds, paraAudit, "Audit", option); + // 审核成功的目标单 + successIdLst = innerResult.OperateResult.Select(o => o.PKValue).Distinct().ToList(); + // 审核不通过的目标单 + failedobjs = destObjs.Where(o => lastSuccessIdLst.Contains(o.GetDynamicObjectItemValue("Id")) + && !successIdLst.Contains(o.GetDynamicObjectItemValue("Id"))).ToList(); + if (failedobjs != null && !failedobjs.IsEmpty()) + { + errorLst.Add(new ValidationErrorInfo("", "Id", 0, 0, "AuditError", string.Format("{0}审核失败,已提交:{1}", + string.Join(",", failedobjs.Select(o => o.GetDynamicObjectItemValue("BillNo"))), string.Join("\n", innerResult.ValidationErrors.Select(o => o.Message))), "", ErrorLevel.Error)); + } + } + ////////////////////////////// 构造错误信息 ////////////////////////////// + if (!errorLst.IsNullOrEmpty()) + { + result.ValidationErrors.AddRange(errorLst); + } + // 将操作结果合并到空操作结果中 + this.OperationResult.IsSuccess = result.IsSuccess; + if (!this.OperationResult.IsSuccess) + { + this.OperationResult.ValidationErrors.Add(new ValidationErrorInfo("", "Id", 0, 0, "Error", string.Format("自动转换失败"), "", ErrorLevel.Error)); + } + } + return; + } + + /// + /// 判断操作结果是否成功,如果不成功,则直接抛错中断进程 + /// + /// 操作结果 + /// 操作参数 + /// + private bool CheckOpResult(IOperationResult opResult, OperateOption opOption) + { + bool isSuccess = false; + if (opResult.IsSuccess == true) + { + // 操作成功 + isSuccess = true; + } + else + { + if (opResult.InteractionContext != null + && opResult.InteractionContext.Option.GetInteractionFlag().Count > 0) + {// 有交互性提示 + // 传出交互提示完整信息对象 + this.OperationResult.InteractionContext = opResult.InteractionContext; + // 传出本次交互的标识, + // 用户在确认继续后,会重新进入操作; + // 将以此标识取本交互是否已经确认过,避免重复交互 + this.OperationResult.Sponsor = opResult.Sponsor; + // 抛出交互错误,把交互信息传递给前端 + new KDInteractionException(opOption, opResult.Sponsor); + } + else + { + // 操作失败,拼接失败原因,然后抛出中断 + opResult.MergeValidateErrors(); + if (opResult.OperateResult == null) + {// 未知原因导致提交失败 + throw new KDBusinessException("", "未知原因导致自动提交、审核失败!"); + } + else + { + StringBuilder sb = new StringBuilder(); + sb.AppendLine("自动操作失败:"); + foreach (var operateResult in opResult.OperateResult) + { + sb.AppendLine(operateResult.Message); + } + throw new KDBusinessException("", sb.ToString()); + } + } + } + return isSuccess; + } + } +} diff --git a/aoyuPlugIn/汇威/MJ_zckpbg.cs b/aoyuPlugIn/汇威/MJ_zckpbg.cs new file mode 100644 index 0000000..6688fca --- /dev/null +++ b/aoyuPlugIn/汇威/MJ_zckpbg.cs @@ -0,0 +1,45 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; + +namespace aoyuPlugIn +{ + [Description("资产卡片变更")] + public class MJ_zckpbg : AbstractBillPlugIn + { + public override void AfterBindData(EventArgs e) + { + //"ZCLB027" + //this.View.Model.SetValue("FAlterId", "100034"); + //this.View.UpdateView("FAlterId"); + //this.View.ShowMessage("绑定成功"); + //DataChanged(null); + + base.AfterBindData(e); + + } + public override void DataChanged(DataChangedEventArgs e) + { + base.DataChanged(e); + DynamicObject fgt = this.View.Model.GetValue("FAlterId") as DynamicObject; + Int64 fgtid = 0; + fgtid = Convert.ToInt64(fgt["ID"]); + + this.View.ShowMessage(fgtid.ToString()); + } + } +} diff --git a/aoyuPlugIn/汇威/hg_KPILR.cs b/aoyuPlugIn/汇威/hg_KPILR.cs new file mode 100644 index 0000000..78afaac --- /dev/null +++ b/aoyuPlugIn/汇威/hg_KPILR.cs @@ -0,0 +1,35 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; + +namespace aoyuPlugIn +{ + [Description("KPI录入")] + public class hg_KPILR : AbstractBillPlugIn + { + //public override void EntryBarItemClick(BarItemClickEventArgs e) + //{ + // base.EntryBarItemClick(e); + //} + public override void DataChanged(DataChangedEventArgs e) + { + base.DataChanged(e); + string t = e.Row.ToString(); + this.View.ShowMessage(t); + } + } +} diff --git a/aoyuPlugIn/汇威/hg_xzjxxm.cs b/aoyuPlugIn/汇威/hg_xzjxxm.cs new file mode 100644 index 0000000..54d6838 --- /dev/null +++ b/aoyuPlugIn/汇威/hg_xzjxxm.cs @@ -0,0 +1,236 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +using Kingdee.BOS; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Bill; +using Kingdee.BOS.Core.CommonFilter; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.List; +using Kingdee.BOS.Core.Report; +using Kingdee.BOS.Core.WNReport; +using System.Collections.ObjectModel; +using System.ComponentModel; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.Core.Metadata.EntityElement; + +namespace aoyuPlugIn +{ + [Description("绩效录入")] + public class hg_xzjxxm : AbstractDynamicFormPlugIn + { + public override void EntryBarItemClick(BarItemClickEventArgs e) + { + base.EntryBarItemClick(e); + if (e.BarItemKey == "tbNewxm") + { + Add_XM(); + } + else if (e.BarItemKey == "tbyg") + { + addyg(); + } + } + //取当前行的值 + string get_ygNO(int i) + { + //得到当前行行号 + //int i = this.View.Model.GetEntryCurrentRowIndex("k13d7a697920649329a5f90e0365ea5c8"); + DynamicObject fgt = this.View.Model.GetValue("FygID",i) as DynamicObject; + + string ygno = fgt["Name"].ToString(); + return ygno; + } + //调用基础资料表单添加员工 + void addyg() + { + + string pageId = Guid.NewGuid().ToString(); + ListShowParameter showParameter = new ListShowParameter(); + //要显示列表的单据标识 + showParameter.FormId = "k13d7a697920649329a5f90e0365ea5c8"; + showParameter.PageId = pageId; + showParameter.UseOrgId = this.Context.CurrentOrganizationInfo.ID; + showParameter.IsLookUp = true; + + //取部门名称 + DynamicObject dobjt = this.View.Model.GetValue("FbmID") as DynamicObject; + string bmNm = dobjt["Name"].ToString(); + //得到当前行行号 + EntryEntity entry = this.View.BusinessInfo.GetEntryEntity("F_QBOY_Entity"); + int i = this.Model.GetEntryCurrentRowIndex("F_QBOY_Entity"); + int tol = this.Model.GetEntryRowCount("F_QBOY_Entity"); + DynamicObject fgt = this.View.Model.GetValue("FygID", i) as DynamicObject; + //取员工编号 + //string billNo = Convert.ToString(this.Model.GetValue("FNUMBER")); + string tj = ""; + if (fgt is null) + tj ="FbmNm='"+ bmNm+"'"; + else + tj = "FNAME='" + fgt["Name"].ToString()+"'"; + + //this.View.ShowErrMessage("员工姓名" + billNo); + + showParameter.ListFilterParameter.Filter =tj; + ListSelectedRowCollection returndata = new ListSelectedRowCollection(); + //this.View.ShowForm(showParameter);//直接显示窗体,不用返回值 + + this.View.ShowForm(showParameter, new Action((result) => + { + if (result.ReturnData != null) + { + returndata = result.ReturnData as ListSelectedRowCollection; + int j = 0; + foreach (ListSelectedRow dObj in returndata) + { + if (i==tol) + { this.Model.CreateNewEntryRow("F_QBOY_Entity"); // 新增一行,需要调用的单据体 + tol++; + } + + //设置员工ID + this.Model.SetValue("FygID", dObj.DataRow["FygID"].ToString(), i); + //设置项目ID + this.Model.SetValue("FJXXMID", dObj.DataRow["FxmID"].ToString(), i); + //设置岗位ID + this.Model.SetValue("FgwID", dObj.DataRow["FgwID"].ToString(), i); + //目标值 + this.Model.SetValue("Fmbz", dObj.DataRow["Fmbz"].ToString(), i); + //权重 + this.Model.SetValue("Fqz", dObj.DataRow["Fqz"].ToString(), i); + + ////设置员工ID + //this.Model.SetValue("FJXXMID", ygID, i); + ////Double FCPID = Convert.ToDouble(dObj.FICPID_ID); + + //string t = dObj.DataRow["FxmID"].ToString(); + ////this.View.ShowMessage(t); + //// 新增一行,需要调用的单据体 + //this.Model.CreateNewEntryRow("F_QBOY_Entity"); + //// 设置字段值 + //this.Model.SetValue("FJXXMID", t, i); + i++; + j++; + } + this.View.UpdateView("F_QBOY_Entity"); + } + })); + + + } + + //调用单据添加项目 + public void Add_XM() + { + + //当前行ID GetEntryCurrentRowIndex + string ygID = this.View.Model.GetEntryCurrentRowIndex("FygID").ToString(); + //当前行行号 + EntryEntity entry = this.View.BusinessInfo.GetEntryEntity("FEntityKey"); + int entryCurrentRowIndex = this.Model.GetEntryCurrentRowIndex("FEntityKey"); + + + + string pageId = Guid.NewGuid().ToString(); + ListShowParameter showParameter = new ListShowParameter(); + //被调用的单据体标识 + showParameter.FormId = "kd0081e4d05cc40c499bf0cf8fb0d4460"; + showParameter.PageId = pageId; + showParameter.UseOrgId = this.Context.CurrentOrganizationInfo.ID; + showParameter.IsLookUp = true; + //先取部门ID + DynamicObject fgt = this.View.Model.GetValue("FbmID") as DynamicObject; + string billNo = fgt["Number"].ToString(); + + //string billNo = Convert.ToString(this.Model.GetValue("FNUMBER")); + showParameter.ListFilterParameter.Filter = "FNUMBER='" + billNo + "'"; + ListSelectedRowCollection returndata = new ListSelectedRowCollection(); + //this.View.ShowForm(showParameter);//直接显示窗体,不用返回值 + + this.View.ShowForm(showParameter, new Action((result) => + { + if (result.ReturnData != null) + { + returndata = result.ReturnData as ListSelectedRowCollection; + int i = 0; + foreach (ListSelectedRow dObj in returndata) + { + //设置员工ID + this.Model.SetValue("FJXXMID", ygID, i); + //Double FCPID = Convert.ToDouble(dObj.FICPID_ID); + + string t = dObj.DataRow["FxmID_ID"].ToString(); + //this.View.ShowMessage(t); + // 新增一行,需要调用的单据体 + this.Model.CreateNewEntryRow("F_QBOY_Entity"); + // 设置字段值 + this.Model.SetValue("FJXXMID", t, i); + i++; + } + this.View.UpdateView("F_QBOY_Entity"); + } + })); + + + } + //行数据变动 + public override void DataChanged(DataChangedEventArgs e) + { + base.DataChanged(e); + int hh = Convert.ToInt16(e.Row); + string t =e.Field.ToString(); + + if (t == "得分") + { + Double df =Convert.ToDouble( e.NewValue.ToString()); + //df = this.View.Model.GetValue("FYGID", hh).ToString(); + //this.View.ShowMessage(df.ToString()); + jsgrzdf(hh, df); + } + } + //计算个人总得分 + void jsgrzdf(int hh, double df) + { + try { + //EntryEntity entry = this.View.BusinessInfo.GetEntryEntity("F_QBOY_Entity"); + int zhh = this.Model.GetEntryRowCount("F_QBOY_Entity"); + if (hh == 0)//第一行 + { + this.View.Model.SetValue("FDF", df, hh); + + } + else + { + //--本行的员工ID + Int64 bhygID = Convert.ToInt64((this.View.Model.GetValue("F_YGNO", hh) as DynamicObject)["ID"]); + double zdf = df; + for (int i = hh; i >-1; i--)//从当前行往上循环 + { + //--上一行的员工ID + Int64 ygID = Convert.ToInt64((this.View.Model.GetValue("F_YGNO", i-1) as DynamicObject)["ID"]); + if (bhygID != ygID)//本行员工ID不等于上一行员工ID,就付值退出 + { + this.View.Model.SetValue("FDF", zdf, hh); + break; + } + else + { + zdf =zdf+ Convert.ToDouble(this.View.Model.GetValue("FPF", i - 1).ToString()); + } + } + + } + + } + catch(Exception ex) { this.View.ShowMessage("计算个人总得分时发生错误为:" + ex.Message); } + this.View.UpdateView("F_QBOY_Entity"); + } + } +} diff --git a/aoyuPlugIn/汇威/jj_show_ygz_ygmx.cs b/aoyuPlugIn/汇威/jj_show_ygz_ygmx.cs new file mode 100644 index 0000000..70e4efc --- /dev/null +++ b/aoyuPlugIn/汇威/jj_show_ygz_ygmx.cs @@ -0,0 +1,47 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; + +namespace aoyuPlugIn +{ + [Description("月工资显示员工明细")] + public class jj_show_ygz_ygmx : AbstractBillPlugIn + { + //单据体菜单操作 + public override void EntryBarItemClick(BarItemClickEventArgs e) + { + base.EntryBarItemClick(e); + //DynamicFormShowParameter param = new DynamicFormShowParameter(); + //param.FormId = BusinessObjectConst.HS_Hook_StockArticulation; //动态表单唯一标识,由字符串组成 + //param.OpenStyle.ShowType = ShowType.Default; + //this.View.ShowForm(param); + + if (e.BarItemKey == "tbShowMX") + { + this.View.ShowMessage("菜单测试成功!"); + DynamicFormShowParameter param = new DynamicFormShowParameter(); + + string fgtid = "121"; + //param.CustomParams.Add("mid", "0"); + //param.CustomParams.Add("gid", Convert.ToString(fgtid)); + param.FormId = "PCDN_XH_YY_MSDKC"; + + this.View.ShowForm(param); + } + } + } +} diff --git a/aoyuPlugIn/汇威/mjcpdj.cs b/aoyuPlugIn/汇威/mjcpdj.cs new file mode 100644 index 0000000..f2ac0c9 --- /dev/null +++ b/aoyuPlugIn/汇威/mjcpdj.cs @@ -0,0 +1,209 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel; + + +using Kingdee.BOS; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Bill; +using Kingdee.BOS.Core.CommonFilter; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.List; +using Kingdee.BOS.Core.Report; +using Kingdee.BOS.Core.WNReport; +using System.Collections.ObjectModel; + +namespace aoyuPlugIn +{ + [Description("调用单据列表")] + public class mjcpdj:AbstractDynamicFormPlugIn + { + //public override void AfterBarItemClick(AfterBarItemClickEventArgs e) + //{ + // return; + // if (e.BarItemKey.EqualsIgnoreCase("tbShowDynamicForm")) + // { + // // 打开动态表单界面 + // // using Kingdee.BOS.Core.DynamicForm; + // string pageId = Guid.NewGuid().ToString(); + // DynamicFormShowParameter showParameter = new DynamicFormShowParameter(); + // showParameter.FormId = "a6fe71c4beda4f7baf60411c4b5f3b3e"; + // showParameter.PageId = pageId; + // //showParameter.OpenStyle.ShowType = ShowType.InContainer; + // //showParameter.OpenStyle.TagetKey = "FTab_P2"; + // this.View.ShowForm(showParameter); + // } + // else if (e.BarItemKey.EqualsIgnoreCase("tbShowInventoryQuery")) + // { + // // 打开即时库存查询界面,传入过滤条件 + // DynamicFormShowParameter inventoryQueryShowParameter = new DynamicFormShowParameter(); + // inventoryQueryShowParameter.FormId = "STK_InventoryQuery"; + // inventoryQueryShowParameter.PageId = Guid.NewGuid().ToString(); + // inventoryQueryShowParameter.CustomParams.Add("QueryMode", "1"); + // inventoryQueryShowParameter.CustomParams.Add("NeedReturnData", "0"); + // inventoryQueryShowParameter.CustomParams.Add("QueryOrgId", "100003"); + // inventoryQueryShowParameter.CustomParams.Add("StockOrgIds", "100003"); + // inventoryQueryShowParameter.CustomParams.Add("QueryFilter", " FMaterialId.FNumber = '1.01.001' and FStockId.FNumber = 'CK001' "); + // this.View.ShowForm(inventoryQueryShowParameter); + // } + // else if (e.BarItemKey.EqualsIgnoreCase("tbShowBill")) + // { + // // 打开单据维护界面:以打开销售订单100001为例 + // // using Kingdee.BOS.Core.Bill; + // string pageId = Guid.NewGuid().ToString(); + // BillShowParameter showParameter = new BillShowParameter(); + // showParameter.FormId = "SAL_SaleOrder"; + // showParameter.OpenStyle.ShowType = ShowType.MainNewTabPage; + // showParameter.PageId = pageId; + // showParameter.Status = OperationStatus.EDIT; + // // 传入需要修改的销售订单内码,演示代码直接固定写死为100001 + // showParameter.PKey = "100001"; + + + // this.View.ShowForm(showParameter); + // } + // else if (e.BarItemKey.EqualsIgnoreCase("tbShowList")) + // { + // // 打开单据列表界面:以打开物料F8查询列表为例 + // // using Kingdee.BOS.Core.List; + // string pageId = Guid.NewGuid().ToString(); + // ListShowParameter showParameter = new ListShowParameter(); + // showParameter.FormId = "BD_Material"; + // showParameter.PageId = pageId; + // showParameter.UseOrgId = this.Context.CurrentOrganizationInfo.ID; + // showParameter.IsLookUp = true; + // showParameter.ListFilterParameter.Filter = ""; + // this.View.ShowForm(showParameter); + + + // // 打开单据联查列表:以联查销售订单为例 + // string billNo = Convert.ToString(this.Model.GetValue("FBillNo")); + // string fldName = "销售合同号字段标识"; + + // IRegularFilterParameter filterParameter = new ListRegularFilterParameter(); + // filterParameter.Filter = string.Format(" {0} = '{1}' ", fldName, billNo); ; + // filterParameter.SelectEntitys = new List() { "FSaleOrderEntry" }; + + + // var listTrackParameter = new ListTrackBillShowParameter(); + // listTrackParameter.FormId = "SAL_SaleOrder"; + // listTrackParameter.PageId = Guid.NewGuid().ToString(); + // listTrackParameter.IsShowFilter = false; + // listTrackParameter.ListFilterParameter = filterParameter; + + + // this.View.ShowForm(listTrackParameter); + // } + // else if (e.BarItemKey.EqualsIgnoreCase("tbShowSQLReport")) + // { + // // 打开直接SQL报表 + // // using Kingdee.BOS.Core.Report; + // string pageId = Guid.NewGuid().ToString(); + // SQLReportShowParameter showParameter = new SQLReportShowParameter(); + // showParameter.FormId = "a9e51595c6c1433ebb623c8e340f7b5b"; + // showParameter.PageId = pageId; + // this.View.ShowForm(showParameter); + // } + // else if (e.BarItemKey.EqualsIgnoreCase("tbShowSysReport")) + // { + // // 打开简单系统账表 + // // using Kingdee.BOS.Core.Report; + // string pageId = Guid.NewGuid().ToString(); + // SysReportShowParameter showParameter = new SysReportShowParameter(); + // showParameter.FormId = "c3329ed2a55c4c31b9420d104f29af9b"; + // showParameter.PageId = pageId; + // showParameter.IsShowFilter = true; + // this.View.ShowForm(showParameter); + // } + // else if (e.BarItemKey.EqualsIgnoreCase("tbShowMoveReport")) + // { + // // 打开分页账表 + // // using Kingdee.BOS.Core.Report; + // string pageId = Guid.NewGuid().ToString(); + // MoveReportShowParameter showParameter = new MoveReportShowParameter(); + // showParameter.FormId = "c3329ed2a55c4c31b9420d104f29af8b"; + // showParameter.PageId = pageId; + // this.View.ShowForm(showParameter); + // } + // else if (e.BarItemKey.EqualsIgnoreCase("tbShowTreeReport")) + // { + // // 打开树形账表 + // // using Kingdee.BOS.Core.Report; + // string pageId = Guid.NewGuid().ToString(); + // TreeReportShowParameter showParameter = new TreeReportShowParameter(); + // showParameter.FormId = "c3329ed2a55c4c31b9420d104f29af7b"; + // showParameter.PageId = pageId; + // this.View.ShowForm(showParameter); + // } + // else if (e.BarItemKey.EqualsIgnoreCase("tbShowPivotGridReport")) + // { + // // 打开透视表 + // // using Kingdee.BOS.Core.Report; + // string pageId = Guid.NewGuid().ToString(); + // CrossReportShowParameter showParameter = new CrossReportShowParameter(); + // showParameter.FormId = "c3329ed2a55c4c31b9420d104f29ae59"; + // showParameter.PageId = pageId; + // this.View.ShowForm(showParameter); + // } + // else if (e.BarItemKey.EqualsIgnoreCase("tbShowWNSQLReport")) + // { + // // 打开万能报表(SQL增强报表是一种万能报表) + // // using Kingdee.BOS.Core.WNReport; + // string pageId = Guid.NewGuid().ToString(); + // WNReportShowParameter showParameter = new WNReportShowParameter(); + // showParameter.FormId = "c3329ed2a55c4c31b9420d104f29ae69"; + // showParameter.PageId = pageId; + // showParameter.ReporType = Kingdee.BOS.Core.Enums.BOSEnums.Enu_DevReportType.SqlOver;// SQL增强报表 + // this.View.ShowForm(showParameter); + // } + //} + public override void EntryBarItemClick(BarItemClickEventArgs e) + { + base.EntryBarItemClick(e); + if (e.BarItemKey == "tbCX") + { + string pageId = Guid.NewGuid().ToString(); + ListShowParameter showParameter = new ListShowParameter(); + showParameter.FormId = "GAT_mjcpdzb"; + showParameter.PageId = pageId; + showParameter.UseOrgId = this.Context.CurrentOrganizationInfo.ID; + showParameter.IsLookUp = true; + string billNo = Convert.ToString(this.Model.GetValue("FNUMBER")); + showParameter.ListFilterParameter.Filter = "FNUMBER='"+billNo+"'"; + ListSelectedRowCollection returndata = new ListSelectedRowCollection(); + //this.View.ShowForm(showParameter);//直接显示窗体,不用返回值 + + this.View.ShowForm(showParameter, new Action((result) => + { + if (result.ReturnData != null) + { + returndata = result.ReturnData as ListSelectedRowCollection; + int i = 0; + foreach (ListSelectedRow dObj in returndata) + { + //Double FCPID = Convert.ToDouble(dObj.FICPID_ID); + + string t = dObj.DataRow["FCPID_ID"].ToString(); + //this.View.ShowMessage(t); + // 新增一行 + this.Model.CreateNewEntryRow("F_GAT_Entity"); + // 设置字段值 + this.Model.SetValue("FCPID", t, i); + i++; + } + this.View.UpdateView("F_GAT_Entity"); + } + })); + + + } + } + + } +} diff --git a/aoyuPlugIn/汇威/workRL.cs b/aoyuPlugIn/汇威/workRL.cs new file mode 100644 index 0000000..a00f99e --- /dev/null +++ b/aoyuPlugIn/汇威/workRL.cs @@ -0,0 +1,117 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; + +namespace aoyuPlugIn +{ + [Description("工作日历")] + public class workRL: AbstractBillPlugIn + { + int sbts = 0; + //单据头菜单点击 + public override void BarItemClick(BarItemClickEventArgs e) + { + base.BarItemClick(e); + try + { + if (e.BarItemKey == "tbPL") + { + sbts = 0; + string t = this.View.Model.GetValue("F_YEAR").ToString(); + if (t == "") t = DateTime.Today.Year.ToString(); + string months = this.View.Model.GetValue("F_MONTH").ToString(); + del_data(t, months); + this.View.Model.SetValue("F_SBTS", sbts); + + } + } + catch(Exception ex) { + this.View.ShowMessage("取单据体字段数据时发生错误为:"+ex.Message); + } + //加日期 + void add_date(string y,string m,string body_nm) + { + try { + var weekdays = new string[] { "0", "1", "2", "3", "4", "5", "6" }; + + int days = System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(Convert.ToInt16(y),Convert.ToInt16(m)); + + this.View.Model.BatchCreateNewEntryRow(body_nm, days); + int sbts = 0; + for (int i = 1; i <= days; i++) + { + string tm = y + "-" + m + "-" + i.ToString(); + this.Model.SetValue("Fdate", tm, i-1); + string zt = getxt(tm); + this.Model.SetValue("F_RLZT", zt, i-1); + if (zt == "上班") + { + sbts++; + this.Model.SetValue("F_GZXS", 1, i - 1); + } + else + { + this.Model.SetValue("F_GZXS", 2, i - 1); + } + + DateTime rq = Convert.ToDateTime(tm); + string wk=weekdays[(int)rq.DayOfWeek]; + this.Model.SetValue("F_WK", wk, i - 1); + } + this.View.Model.SetValue("F_SBTS", sbts, 0); + + + + } + catch(Exception ex) { + this.View.ShowMessage("加日期时发生错误为:" + ex.Message); + } + } + string getxt(string tm) + { + DateTime t = Convert.ToDateTime(tm); + string xx = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetDayName(t.DayOfWeek); + //if (xx == "星期六" || xx == "星期日") + if (xx == "星期日") + xx = "休息"; + else + { + xx = "上班"; + sbts++; + } + return xx; + } + void del_data(string y, string m) + { + try + { + string nm = "F_GAT_GZRLs"; + //取表体最大行数 + int tol = this.Model.GetEntryRowCount(nm); + tol--; + for (int i = tol; i > -1; i--) + { + this.View.Model.DeleteEntryRow(nm, i); //先删除空行 + } + add_date(y, m, nm); + } + catch (Exception ex) + { this.View.ShowMessage("删除表体数据时发生错误为:" + ex.Message); } + } + } + } +} diff --git a/aoyuPlugIn/汇威/zp_bsdlb.cs b/aoyuPlugIn/汇威/zp_bsdlb.cs new file mode 100644 index 0000000..4889edd --- /dev/null +++ b/aoyuPlugIn/汇威/zp_bsdlb.cs @@ -0,0 +1,75 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.List.PlugIn; +namespace aoyuPlugIn +{ + [Description("补数单列表反写生产订单")] + public class zp_bsdlb:AbstractListPlugIn + { + //int fx = -1; + void fxjdb(string issh) + { + try + { + //string fbillno = ""; + if (this.ListView.SelectedRowsInfo.Count > 0) + { + for (int i = 0; i < this.ListView.SelectedRowsInfo.Count; i++) + { + //取指定行单据编号 + string fbillno = this.ListView.SelectedRowsInfo[i].BillNo; + string zt = this.ListView.SelectedRowsInfo[i].DataRow["FDOCUMENTSTATUS"].ToString(); + if (issh == "1") + { + if (zt == "D" || zt == "B") + { + var sSql = String.Format("EXEC hw_fx_bs " + fbillno + "," + issh); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + } + } + else + { + if (zt == "C") + { + var sSql = String.Format("EXEC hw_fx_bs " + fbillno + "," + issh); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + } + } + + } + } + } + catch (Exception ex) { this.View.ShowMessage("反写进度表时发生错误为:" + ex.Message); } + } + //列表菜单事件 + public override void AfterBarItemClick(AfterBarItemClickEventArgs e) + { + base.AfterBarItemClick(e); + + if (e.BarItemKey == "tbSplitApprove" || e.BarItemKey == "tbApprove")//审核 + { + fxjdb("1"); + } + else if (e.BarItemKey == "tbReject")//反审核 + { + fxjdb("0"); + } + } + + } +} diff --git a/aoyuPlugIn/汇威/zp_plyg.cs b/aoyuPlugIn/汇威/zp_plyg.cs new file mode 100644 index 0000000..d2b46cc --- /dev/null +++ b/aoyuPlugIn/汇威/zp_plyg.cs @@ -0,0 +1,393 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using System.Collections; +using System.Data; + +namespace aoyuPlugIn +{ + [HotUpdate] + [Description("装配批录员工")] + public class zp_plyg : AbstractBillPlugIn + { + public override void BeforeSave(BeforeSaveEventArgs e) + { + + base.BeforeSave(e); + if (check_data() == false) + e.Cancel = true; + } + //检测数据 + bool check_data() + { + bool isok = true; + try + { + string djno ="";int isAdd=0; + if (this.View.OpenParameter.Status == OperationStatus.ADDNEW) //新增 + { + isAdd = 0; + } + else + { + djno = this.Model.GetValue("FBillNo").ToString(); + isAdd = 1; + } + string FEntity_nm = "F_GAT_Entity1"; + //取表体最大行数 + int tol = this.Model.GetEntryRowCount(FEntity_nm); + if (tol > 0) + { + //集体计件 + isok = yzdata(getJTJJ(), djno, isAdd); + } + else + { + //个人计件 + isok = yzdata(getGRJJ(), djno, isAdd); + } + + } + catch (Exception ex) + { this.View.ShowMessage("检测数据时发生错误为:" + ex.Message); } + return isok; + } + //验证数据 + bool yzdata(DataTable tb,string djno,int isAdd) + { + try + { + foreach (DataRow r in tb.Rows) + { + string rwdID = r["rwdID"].ToString(); + string gxID = r["gxID"].ToString(); + string sl = r["sl"].ToString(); + string[] jg = tolsl(djno, rwdID, gxID, sl, isAdd); + if (jg[0] == "1") + { + this.View.ShowErrMessage(jg[1].ToString() + "!"); + return false; + } + } + }catch(Exception ex) { this.View.ShowMessage("验证数据时发生错误为:" + ex.Message); } + return true; + } + //bool check_data1() + //{ + // bool isok = true; + // try + // { + // string djno = ""; int isAdd = 0; + // if (this.View.OpenParameter.Status == OperationStatus.ADDNEW) //新增 + // { + // isAdd = 0; + // } + // else + // { + // djno = this.Model.GetValue("FBillNo").ToString(); + // isAdd = 1; + // } + // string FEntity_nm = "F_GAT_Entity1"; + + // //取表体最大行数 + // int tol = this.Model.GetEntryRowCount(FEntity_nm); + + // for (int i = 0; i < tol; i++) + // { + // DynamicObject fgt = this.View.Model.GetValue("F_SCNO", i) as DynamicObject; + // string rwdID = fgt["ID"].ToString(); + + // DynamicObject fgt1 = this.View.Model.GetValue("F_DJGWID", i) as DynamicObject; + // string gxID = fgt1["Number"].ToString(); + // string sl = this.Model.GetValue("F_FQTY").ToString(); + // Double[] jg = tolsl(djno, rwdID, gxID, sl, isAdd); + // if (jg[0] == 1) + // { + // isok = false; + // this.View.ShowErrMessage("第" + (i + 1).ToString() + "行超过订单数" + jg[1].ToString() + "!"); + // break; + // } + // } + // //个人计件 + // DataTable tbgr = getGRJJ(); + + // } + // catch (Exception ex) + // { this.View.ShowMessage("验证数据时发生错误为:" + ex.Message); } + // return isok; + //} + //取集体计件数量 + DataTable getJTJJ () + { + ArrayList data1 = new ArrayList(); + DataTable tb = new DataTable(); + tb.Columns.Add("rwdID"); + tb.Columns.Add("gxID"); + tb.Columns.Add("sl"); + + try + { + + string FEntity_nm = "F_GAT_Entity1"; + //取表体最大行数 + int tol = this.Model.GetEntryRowCount(FEntity_nm); + + for (int i = 0; i < tol; i++) + { + DynamicObject fgt = this.View.Model.GetValue("F_SCNO", i) as DynamicObject; + string rwdID = fgt["ID"].ToString(); + + DynamicObject fgt1 = this.View.Model.GetValue("F_DJGWID", i) as DynamicObject; + string gxID = fgt1["Number"].ToString(); + string sl = this.Model.GetValue("F_FQTY",i).ToString(); + string p = rwdID + "*" + gxID; + if (data1.Contains(p) == false) + { + data1.Add(p); + DataRow nr = tb.NewRow(); + nr[0] = rwdID; + nr[1] = gxID; + nr[2] = sl; + tb.Rows.Add(nr); + } + else + { + foreach (DataRow r2 in tb.Rows) + { + if (rwdID == r2["rwdID"].ToString() && gxID == r2["gxID"].ToString()) + { + r2["sl"] = Convert.ToInt16(sl) + Convert.ToInt16(r2["sl"].ToString()); + break; + } + } + } + + + } + + } + catch (Exception ex) + { this.View.ShowMessage("验证数据时发生错误为:" + ex.Message); } + return tb; + } + //取个人计件数据 + DataTable getGRJJ() + { + //int index = this.View.Model.GetEntryCurrentRowIndex("你的单据体标识"); + //DynamicObject obj = this.Model.DataObject; + //DynamicObjectCollection rows = obj["你的单据体ORM实体名"] as DynamicObjectCollection; + //rows[index];// 就是你要的 + + //取表体最大行数 + //int tol = this.Model.GetEntryRowCount(FEntity_nm); + + ArrayList data1 = new ArrayList(); + DataTable tb = new DataTable(); + tb.Columns.Add("rwdID"); + tb.Columns.Add("gxID"); + tb.Columns.Add("sl"); + try + { + string ORM_NM = "GAT_DAY_GR_ZP";//你的单据体ORM实体名 + DynamicObject obj = this.Model.DataObject; + DynamicObjectCollection rows = obj[ORM_NM] as DynamicObjectCollection; + int i = 0; + foreach (var r in rows) + { + + DynamicObject fgt = r["F_SCNO1"] as DynamicObject; + string rwdID = fgt["ID"].ToString(); + DynamicObject fgt1 = r["F_GWID"] as DynamicObject; + string gxID = fgt1["Number"].ToString(); + string p = rwdID + "*" + gxID; + string sl = r["F_FQ1TY1"].ToString(); + if (data1.Contains(p) == false) + { + data1.Add(p); + DataRow nr = tb.NewRow(); + nr[0] = rwdID; + nr[1] = gxID; + nr[2] = sl; + tb.Rows.Add(nr); + } + else + { + foreach (DataRow r2 in tb.Rows) + { + if (rwdID == r2["rwdID"].ToString() && gxID == r2["gxID"].ToString()) + { + int kk = Convert.ToInt16(sl) + Convert.ToInt16(r2["sl"].ToString()); + r2["sl"] = kk; + break; + } + } + } + } + }catch(Exception ex) { this.View.ShowMessage("组合表数据时发生错误为:" + ex.Message); } + return tb; + } + string[] tolsl(string djno,string rwdID,string gxID,string sl, int isAdd) + { + string[] isok = new string[2]; + isok[0] = "0"; + isok[1] = "0"; + + + + string sql = String.Format("exec hw_zp_yzsl '{0}',{1},{2},'{3}',{4}",djno, rwdID,gxID,sl,isAdd); + var dr1 = DBServiceHelper.ExecuteDynamicObject(this.Context, sql); + string jg = "0"; + if (dr1.Count > 0) + jg = dr1[0][0].ToString(); + + if ( jg!="0") { + isok[0] = "1"; + isok[1] = jg; + } + return isok; + } + //单据头菜单点击 + //public override void BarItemClick(BarItemClickEventArgs e) + //{ + // base.BarItemClick(e); + // //if (e.BarItemKey == "tbApprove" || e.BarItemKey == "tbSplitApprove") + // //{ + // // fx_yscs(e, "1"); + // //}else if(e.BarItemKey== "tbReject") { + // // fx_yscs(e, "0"); + + + // //} + //} + //public override void AfterBarItemClick(AfterBarItemClickEventArgs e) + //{ + // base.AfterBarItemClick(e); + // //if (e.BarItemKey == "tbReject") + // //{ + // // //隐藏审核菜单 + // // this.View.GetMainBarItem("tbApprove").Visible = false; + // // this.View.GetMainBarItem("tbSplitApprove").Visible = false; + // //} + //} + //public override void AfterBindData(EventArgs e) + //{ + // base.AfterBindData(e); + + + //// var baseObj1 = this.Model.GetValue("FBT005"); + // if (baseObj1.ToString() =="0") + // { + // var sSql = String.Format("exec hw_get_btbz"); + // var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + // int i = 0; + // if (dr.Count > 0) + // { + // //string k = item[0].ToString(); + // //this.Model.SetValue("F_YGNO3", item[0], i); + + // this.Model.SetValue("FBT005", dr[0][1].ToString()); + // this.View.UpdateView("FBT005"); + // this.Model.SetValue("FBT006", dr[1][1].ToString()); + // this.View.UpdateView("FBT006"); + // this.Model.SetValue("FBT012", dr[2][1].ToString()); + // this.View.UpdateView("FBT012"); + + + + // } + + + + // } + + + //} + //反写已生产数据 + void fx_yscs(BarItemClickEventArgs e,string sh) + { + string fbillno = this.View.Model.GetValue("FBillNo").ToString(); + var sSql = String.Format("EXEC hw_zplr_fx_scdd " + fbillno + ","+sh); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + string t = "生产数量大于订单数量,不能审核!"; + + if (dr.Count > 0) + { + foreach (var item in dr) + { + string k = "生产订单:" + item["rwdNo"].ToString() + "|工序编号:" + item["gxNo"].ToString() + + "|订单数:" + item["dds"].ToString() + "|已生产数:" + item["yscs"].ToString(); + t = t + "\r\n" + k; + } + + this.View.ShowMessage(t); + e.Cancel = true; + } + + } + //点击单据体菜单 + public override void EntryBarItemClick(BarItemClickEventArgs e) + { + base.BarItemClick(e); + if (e.BarItemKey == "tbPLYG") + { + //string t =this.View.Model.GetValue("F_CBM").ToString(); + //string t = this.View.Model.DataObject["F_CBM"].ToString(); + DynamicObject fgt = this.View.Model.GetValue("F_CBM") as DynamicObject; + string t = fgt["ID"].ToString(); + add_data_stort(t); + } + + } + void del_data(string FEntity_nm) + { + try + { + //取表体最大行数 + int tol = this.Model.GetEntryRowCount(FEntity_nm); + tol--; + for (int i = tol; i > -1; i--) + { + this.View.Model.DeleteEntryRow(FEntity_nm, i); //先删除空行 + } + } + catch (Exception ex) + { this.View.ShowMessage("删除表体数据时发生错误为:" + ex.Message); } + } + public void add_data_stort(string cs) + { + try + { + del_data("F_JTJJ"); + var sSql = String.Format("EXEC hw_get_plyg " + cs); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + int i = 0; + if (dr.Count > 0) + { + this.View.Model.BatchCreateNewEntryRow("F_JTJJ", dr.Count); + } + foreach (var item in dr) + { + string k = item[0].ToString(); + this.Model.SetValue("F_YGNO3", item[0], i); + //this.Model.SetValue("F_REM", "1", i); + i++; + } + } + catch (Exception ex) { this.View.ShowMessage("加表体数据时发生错误为:" + ex.Message); } + } + } +} diff --git a/aoyuPlugIn/汇威/zp_plyg_LB.cs b/aoyuPlugIn/汇威/zp_plyg_LB.cs new file mode 100644 index 0000000..4e53223 --- /dev/null +++ b/aoyuPlugIn/汇威/zp_plyg_LB.cs @@ -0,0 +1,95 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.List.PlugIn; + +namespace aoyuPlugIn +{ + [Description("装配录入列表反写已生产数")] + public class zp_plyg_LB : AbstractListPlugIn + { + //列表菜单事件 + public override void AfterBarItemClick(AfterBarItemClickEventArgs e) + { + //base.AfterBarItemClick(e); + + //if (e.BarItemKey == "tbSplitApprove" || e.BarItemKey == "tbApprove")//审核 + //{ + + // fxjdb("1"); + + //} + //else if (e.BarItemKey == "tbReject")//反审核 + //{ + + // fxjdb("0"); + //} + } + //反写已生产数据 + void fxjdb(string issh) + { + try + { + //string fbillno = ""; + if (this.ListView.SelectedRowsInfo.Count > 0) + { + for (int i = 0; i < this.ListView.SelectedRowsInfo.Count; i++) + { + //取指定行单据编号 + string fbillno = this.ListView.SelectedRowsInfo[i].BillNo; + string zt = this.ListView.SelectedRowsInfo[i].DataRow["FDOCUMENTSTATUS"].ToString(); + if (issh == "1") + { + if (zt == "D" || zt == "B") + { + fx_yscs(fbillno, issh); + } + } + else + { + if (zt == "C") + { + fx_yscs(fbillno, issh); + } + } + + + } + } + } + catch (Exception ex) { this.View.ShowMessage("反写已生产数时发生错误为:" + ex.Message); } + } + void fx_yscs( string fbillno,string sh) + { + //string fbillno = this.View.Model.GetValue("FBillNo").ToString(); + var sSql = String.Format("EXEC hw_zplr_fx_scdd " + fbillno + "," + sh); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + string t = "生产数量大于订单数量,不能审核!"; + + if (dr.Count > 0) + { + foreach (var item in dr) + { + string k = "生产订单:" + item["rwdNo"].ToString() + "|工序编号:" + item["gxNo"].ToString() + + "|订单数:" + item["dds"].ToString() + "|已生产数:" + item["yscs"].ToString(); + t = t + "\r\n" + k; + } + this.View.ShowMessage(t); + } + } + } +} diff --git a/aoyuPlugIn/汇威/zp_rgz.cs b/aoyuPlugIn/汇威/zp_rgz.cs new file mode 100644 index 0000000..405786d --- /dev/null +++ b/aoyuPlugIn/汇威/zp_rgz.cs @@ -0,0 +1,167 @@ + +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +namespace aoyuPlugIn +{ + [Description("装配日工资")] + public class aoyuPlugIn : AbstractBillPlugIn + { + + ////菜单按钮必须有操作事件,如新增,删除、保存等 + //public override void BeforeDoOperation(BeforeDoOperationEventArgs e) + //{ + // base.BeforeDoOperation(e); + + // //this.View.ShowMessage("菜单测试成功!"); + //} + //单据头菜单点击 + public override void BarItemClick(BarItemClickEventArgs e) + { + base.BarItemClick(e); + //this.View.ShowMessage("Hello World:" + e.BarItemKey.ToString()); + string t = Convert.ToDateTime(this.View.Model.GetValue("FDate").ToString()).ToShortDateString(); + + if (e.BarItemKey == "tbSCRGZ") + { + check_data(t); + } + else if (e.BarItemKey == "tbSplitSave" || e.BarItemKey == "tbSave")// + { + //t = "'" + t + "'"; + //var sSql = String.Format("EXEC hw_get_zpjjmxb " + t ); + //var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + } + else if (e.BarItemKey == "tbSplitSubmit" || e.BarItemKey == "tbSubmit") + { + sc_mx(t); + } + } + //生成员工计件工资明细 + void sc_mx(string fdate) + { + try + { + fdate = "'" + fdate + "'"; + var sSql = String.Format("EXEC hw_get_zpjjmxb " + fdate); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + } + catch (Exception ex) + { + this.View.ShowMessage("生成员工计件工资明细时发生错误为:" + ex); + } + } + ////单据体菜单操作 + //public override void EntryBarItemClick(BarItemClickEventArgs e) + //{ + // base.EntryBarItemClick(e); + //} + //按钮事件 + public override void ButtonClick(ButtonClickEventArgs e) + { + base.ButtonClick(e); + try + { + if (e.Key == "F_GAT_BUTTON") + { + + string t = Convert.ToDateTime(this.View.Model.GetValue("FDate").ToString()).ToShortDateString(); + //add_data_stort(t); + //check_data(t); + //this.View.ShowMessage(t); + + } + } + catch (Exception ex) { this.View.ShowMessage("取日期时发生错误为:" + ex.Message); } + + } + //检测数据是否有未审核 + void check_data(string date1) + { + try + { + date1 = "'" + date1 + "'"; + var sSql = String.Format("EXEC hw_jsrgz_checkSH " + date1); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + if (dr.Count > 0) + { + string t = dr[0][0].ToString(); + this.View.ShowMessage(t); + return; + } + add_data_stort(date1); + } + catch (Exception ex) + { this.View.ShowMessage("检测数据是否有未审核时发生错误为:" + ex.Message); } + + } + //存储过程加入表 + public void add_data_stort(string cs) + { + try + { + del_data("F_QBOY_Entity");//先删除数据 + //return; + //cs = "'" + cs + "'"; + var sSql = String.Format("EXEC hw_get_rgz " + cs); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + int i = 0; + if (dr.Count > 0) + { + this.View.Model.BatchCreateNewEntryRow("F_QBOY_Entity", dr.Count); + } + foreach (var item in dr) + { + + this.Model.SetValue("F_YGNO", item[0], i); + this.Model.SetValue("F_JJGZ", item[1], i); + this.Model.SetValue("F_JSGZ", item[2], i); + this.Model.SetValue("F_JLGZ", item[3], i); + this.Model.SetValue("F_JBGZ", item[4], i); + this.Model.SetValue("F_CSBT", item[5], i); + this.Model.SetValue("F_GWBT", item[6], i); + this.Model.SetValue("F_XYGBT", item[7], i); + this.Model.SetValue("F_SYQBT", item[8], i); + this.Model.SetValue("F_QT", item[9], i); + this.Model.SetValue("F_DRGZ", item[10], i); + + i++; + } + } + catch (Exception ex) { this.View.ShowMessage("加表体数据时发生错误为:" + ex.Message); } + } + //计算前先删除当前数据 + void del_data(string FEntity_nm) + { + try + { + //取表体最大行数 + int tol = this.Model.GetEntryRowCount(FEntity_nm); + tol--; + for (int i = tol; i > -1; i--) + { + this.View.Model.DeleteEntryRow(FEntity_nm, i); //先删除空行 + } + } + catch (Exception ex) + { this.View.ShowMessage("删除表体数据时发生错误为:" + ex.Message); } + } + + } + + +} diff --git a/aoyuPlugIn/汇威/zp_rgz_LB.cs b/aoyuPlugIn/汇威/zp_rgz_LB.cs new file mode 100644 index 0000000..55252ef --- /dev/null +++ b/aoyuPlugIn/汇威/zp_rgz_LB.cs @@ -0,0 +1,77 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.List.PlugIn; + +namespace aoyuPlugIn +{ + [Description("装配日工资列表生成计件明细")] + public class zp_rgz_LB : AbstractListPlugIn + { + //列表菜单事件 + public override void AfterBarItemClick(AfterBarItemClickEventArgs e) + { + base.AfterBarItemClick(e); + + if (e.BarItemKey == "tbSplitSubmit" || e.BarItemKey == "tbSubmit")//提交 + { + + fxjdb(); + + } + + } + void fxjdb() + { + try + { + //string fbillno = ""; + if (this.ListView.SelectedRowsInfo.Count > 0) + { + for (int i = 0; i < this.ListView.SelectedRowsInfo.Count; i++) + { + //取指定行单据编号 + //string fbillno = this.ListView.SelectedRowsInfo[i].BillNo; + string fdate = this.ListView.SelectedRowsInfo[i].DataRow["FDate"].ToString(); + string[] dt = fdate.Split(' '); + fdate = dt[0]; + string zt = this.ListView.SelectedRowsInfo[i].DataRow["FDOCUMENTSTATUS"].ToString(); + if (zt == "A" || zt == "D") + { + sc_mx(fdate); + } + } + } + } + catch (Exception ex) { this.View.ShowMessage("生成计件工资明细时发生错误为:" + ex.Message); } + } + //生成员工计件工资明细 + void sc_mx(string fdate) + { + try + { + fdate = "'" + fdate + "'"; + var sSql = String.Format("EXEC hw_get_zpjjmxb " + fdate); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + } + catch (Exception ex) + { + this.View.ShowMessage("生成员工计件工资明细时发生错误为:" + ex); + } + } + } + } diff --git a/aoyuPlugIn/汇威/zp_ygz.cs b/aoyuPlugIn/汇威/zp_ygz.cs new file mode 100644 index 0000000..5744ba7 --- /dev/null +++ b/aoyuPlugIn/汇威/zp_ygz.cs @@ -0,0 +1,172 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.ComponentModel; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; + +namespace aoyuPlugIn +{ + [Description("装配月工资")] + public class zp_ygz : AbstractBillPlugIn + { + public override void BarItemClick(BarItemClickEventArgs e) + { + base.BarItemClick(e); + //this.View.ShowMessage("Hello World:" + e.BarItemKey.ToString()); + if (e.BarItemKey == "tbSCYGZ") + { + string years = this.View.Model.GetValue("F_YEAR").ToString(); + if (years == "" || years == "0") years = DateTime.Today.Year.ToString(); + string months = this.View.Model.GetValue("F_MONTH").ToString(); + del_data("F_YGZ_ZP", years, months); + } + + + } + //删除窗体数据 + void del_data(string bodynm, string y, string m) + { + try + { + //取表体最大行数 + int tol = this.Model.GetEntryRowCount(bodynm); + tol--; + for (int i = tol; i > -1; i--) + { + this.View.Model.DeleteEntryRow(bodynm, i); //先删除空行 + } + add_data_stort(y, m, bodynm); + } + catch (Exception ex) + { this.View.ShowMessage("删除表体数据时发生错误为:" + ex.Message); } + } + //加载数据 + void add_data_stort(string y, string m, string bodynm) + { + try + { + string cs = y + "," + m; + var sSql = String.Format("EXEC hw_get_ygz " + cs); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + int i = 0; + if (dr.Count > 0) + { + string t = dr[0][0].ToString(); + if (t == "1") + { + this.View.ShowMessage("计算月工资失败:因为日工资有未审核单据"); + return; + } + + this.View.Model.BatchCreateNewEntryRow(bodynm, dr.Count); + } + foreach (var item in dr) + { + + this.Model.SetValue("F_YGNO", item[0], i); + this.Model.SetValue("F_JJGZ", item[1], i); + this.Model.SetValue("F_JSGZ", item[2], i); + this.Model.SetValue("F_BZGZ", item[3], i); + this.Model.SetValue("F_JLGZ", item[4], i); + this.Model.SetValue("F_YCGZ", item[5], i); + this.Model.SetValue("F_JBGZ", item[6], i); + this.Model.SetValue("F_QT", item[7], i); + + this.Model.SetValue("F_CSBT", item[8], i); + this.Model.SetValue("F_GWBT", item[9], i); + this.Model.SetValue("F_CFBT", item[10], i); + this.Model.SetValue("F_YBBT", item[11], i); + this.Model.SetValue("F_XYGBT", item[12], i); + this.Model.SetValue("F_SYQBT", item[13], i); + this.Model.SetValue("F_XCPBT", item[14], i); + this.Model.SetValue("F_DRGZ", item[15], i); + this.Model.SetValue("F_GLBT", item[16], i); + i++; + } + } + catch (Exception ex) { this.View.ShowMessage("加表体数据时发生错误为:" + ex.Message); } + } + //显示明细 + //单据体菜单操作 + public override void EntryBarItemClick(BarItemClickEventArgs e) + { + base.EntryBarItemClick(e); + + //DynamicFormShowParameter param = new DynamicFormShowParameter(); + //param.FormId = BusinessObjectConst.HS_Hook_StockArticulation; //动态表单唯一标识,由字符串组成 + //param.OpenStyle.ShowType = ShowType.Default; + //this.View.ShowForm(param); + + if (e.BarItemKey == "tbShowMX") + { + + //F_GAT_BaseProperty:员工姓名 + string djtnm = "yggzmx"; + //try + //{ + // int index = this.View.Model.GetEntryCurrentRowIndex(djtnm); + // DynamicObject obj = this.Model.DataObject; + // DynamicObjectCollection rows = obj[djtnm] as DynamicObjectCollection; + // string tt = rows[index]["F_YGNO"].ToString(); + // this.View.ShowMessage("当前行员工编号为:" + tt); + //} + //catch(Exception ex) { this.View.ShowMessage(ex.Message); } + + DynamicFormShowParameter param = new DynamicFormShowParameter(); + + string fgtid = "121"; + //param.CustomParams.Add("mid", "0"); + //param.CustomParams.Add("gid", Convert.ToString(fgtid)); + param.FormId = "k5c2439c690654f63b158713af5fe353e"; + + this.View.ShowForm(param); + } + } + + public override void EntityRowDoubleClick(EntityRowClickEventArgs e) + { + + base.EntityRowDoubleClick(e); + int i = e.Row; + string Y = this.View.Model.GetValue("F_YEAR").ToString(); + string M = this.View.Model.GetValue("F_MONTH").ToString(); + + Int64 ID = Convert.ToInt64((this.View.Model.GetValue("F_YGNO", i) as DynamicObject)["ID"]); + + + + //this.View.ShowMessage(ID.ToString()); + //DynamicFormShowParameter param = new DynamicFormShowParameter(); + Kingdee.BOS.Core.DynamicForm.DynamicFormShowParameter param = + new Kingdee.BOS.Core.DynamicForm.DynamicFormShowParameter(); + //string fgtid = "121"; + //param.CustomParams.Add("mid", "0"); + //param.CustomParams.Add("ygid", Convert.ToString(ID)); + //param.CustomParams.Add("FYEAR",Y); + //param.CustomParams.Add("FMONTH", M); + //param.CustomParams.Add("FDAY", ""); + //param.FormId = "k5c2439c690654f63b158713af5fe353e"; + param.FormId = "BOS_K3Displyer"; + + + this.View.ShowForm(param); + + } + + + + } +} diff --git a/aoyuPlugIn/汇威/zpjjmxb_lb.cs b/aoyuPlugIn/汇威/zpjjmxb_lb.cs new file mode 100644 index 0000000..03f0f03 --- /dev/null +++ b/aoyuPlugIn/汇威/zpjjmxb_lb.cs @@ -0,0 +1,51 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.List.PlugIn; +namespace aoyuPlugIn +{ + [Description("装配计件工资明细列表")] + public class zpjjmxb_lb: AbstractListPlugIn + { + public override void BeforeDoOperation(BeforeDoOperationEventArgs e) + { + base.BeforeDoOperation(e); + + //return; + if (e.Operation.FormOperation.Id == "701fae4c-257c-4852-acfe-5a3c94a6fef5")//删除 + { + for (int i = 0; i < this.ListView.SelectedRowsInfo.Count; i++) + { + //取指定行单据编号 + string fbillno = this.ListView.SelectedRowsInfo[i].DataRow["FID"].ToString(); + //this.View.ShowMessage(fbillno); + + var sSql = String.Format("EXEC hw_zpjjmxb_del " + fbillno); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + + + } + + e.Cancel = true; + + this.View.ShowMessage("删除成功,请刷新数据!"); + this.View.ParentFormView.Refresh(); + } + + } + } +} diff --git a/aoyuPlugIn/汇威/zq_bsd.cs b/aoyuPlugIn/汇威/zq_bsd.cs new file mode 100644 index 0000000..fd95567 --- /dev/null +++ b/aoyuPlugIn/汇威/zq_bsd.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +namespace aoyuPlugIn +{ + [Description("补数单反写生产订单")] + public class bsdFXscdd : AbstractBillPlugIn + { + + //单据头菜单点击 + public override void BarItemClick(BarItemClickEventArgs e) + { + base.BarItemClick(e); + string t = ""; + if (e.BarItemKey == "tbSplitApprove"||e.BarItemKey== "tbApprove") + { + t = this.View.Model.GetValue("FBillNo").ToString(); + fx_scdds(t,"1"); + } else if (e.BarItemKey == "tbReject") { + t = this.View.Model.GetValue("FBillNo").ToString(); + fx_scdds(t,"0"); + } + } + //计算前先删除当前数据 + void fx_scdds(string fbillno, string isja) + { + try + { + var sSql = String.Format("EXEC hw_fx_bs " + fbillno + "," + isja); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + } + catch (Exception ex) + { this.View.ShowMessage("反写生产订单补数时发生错误为:" + ex.Message); } + } + + } +} + + diff --git a/aoyuPlugIn/汇威/zq_pl.cs b/aoyuPlugIn/汇威/zq_pl.cs new file mode 100644 index 0000000..3bfb0e9 --- /dev/null +++ b/aoyuPlugIn/汇威/zq_pl.cs @@ -0,0 +1,111 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; + +namespace aoyuPlugIn +{ + [Description("出勤批录员工")] + public class zq_pl : AbstractBillPlugIn + { + public override void AfterBindData(EventArgs e) + { + base.AfterBindData(e); + + + var baseObj1 = this.Model.GetValue("FBT005"); + if (baseObj1.ToString() == "0") + { + var sSql = String.Format("exec hw_get_btbz"); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + int i = 0; + if (dr.Count > 0) + { + //string k = item[0].ToString(); + //this.Model.SetValue("F_YGNO3", item[0], i); + + this.Model.SetValue("FBT005", dr[0][1].ToString()); + this.View.UpdateView("FBT005"); + this.Model.SetValue("FBT006", dr[1][1].ToString()); + this.View.UpdateView("FBT006"); + this.Model.SetValue("FBT012", dr[2][1].ToString()); + this.View.UpdateView("FBT012"); + + + + } + + + + } + + + } + //单据体菜单操作 + public override void EntryBarItemClick(BarItemClickEventArgs e) + { + base.EntryBarItemClick(e); + if (e.BarItemKey == "tbPL") + { + string tm = Convert.ToDateTime(this.View.Model.GetValue("F_DATE").ToString()).ToShortDateString(); + tm = "'" + tm + "'"; + DynamicObject fgt = this.View.Model.GetValue("FCBM") as DynamicObject; + string t = fgt["ID"].ToString(); + add_data_stort(tm,t); + } + } + void del_data(string FEntity_nm) + { + try + { + //取表体最大行数 + int tol = this.Model.GetEntryRowCount(FEntity_nm); + tol--; + for (int i = tol; i > -1; i--) + { + this.View.Model.DeleteEntryRow(FEntity_nm, i); //先删除空行 + } + } + catch (Exception ex) + { this.View.ShowMessage("删除表体数据时发生错误为:" + ex.Message); } + } + public void add_data_stort(string fdate,string bcID) + { + try + { + del_data("F_GAT_YGCQs"); + var sSql = String.Format("EXEC hw_get_plyg_cq " + fdate+","+bcID); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + int i = 0; + if (dr.Count > 0) + { + this.View.Model.BatchCreateNewEntryRow("F_GAT_YGCQs", dr.Count); + } + foreach (var item in dr) + { + string k = item[0].ToString(); + this.Model.SetValue("F_YGNM", item[0], i); + this.Model.SetValue("F_ISXYG", item[1], i); + this.Model.SetValue("F_ISSYQ", item[2], i); + + //this.Model.SetValue("F_REM", "1", i); + i++; + } + } + catch (Exception ex) { this.View.ShowMessage("加表体数据时发生错误为:" + ex.Message); } + } + } +} diff --git a/aoyuPlugIn/汇威/zs_rgz.cs b/aoyuPlugIn/汇威/zs_rgz.cs new file mode 100644 index 0000000..9280cf1 --- /dev/null +++ b/aoyuPlugIn/汇威/zs_rgz.cs @@ -0,0 +1,103 @@ +using System; +using System.ComponentModel; + +using Kingdee.BOS.Core.Bill.PlugIn; + +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; + +using Kingdee.BOS.ServiceHelper; + + +namespace aoyuPlugIn +{ + [Description("注塑日工资")] + public class zs_rgz : AbstractBillPlugIn + { + + //单据头菜单点击 + public override void BarItemClick(BarItemClickEventArgs e) + { + base.BarItemClick(e); + string t = Convert.ToDateTime(this.View.Model.GetValue("FDate").ToString()).ToShortDateString(); + if (e.BarItemKey == "tbSCRGZ") + { + check_data(t); + } + } + //检测数据是否有未审核 + void check_data(string date1) + { + try + { + date1 = "'" + date1 + "'"; + var sSql = String.Format("EXEC hw_zsrgz_checkSH " + date1); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + if (dr.Count > 0) + { + string t = dr[0][0].ToString(); + this.View.ShowMessage(t); + return; + } + add_data_stort(date1); + } + catch (Exception ex) + { this.View.ShowMessage("检测数据是否有未审核时发生错误为:" + ex.Message); } + + } + //存储过程加入表 + public void add_data_stort(string cs) + { + try + { + del_data("F_QBOY_Entity");//先删除数据 + //return; + //cs = "'" + cs + "'"; + var sSql = String.Format("EXEC hw_get_rgz_zs " + cs); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + int i = 0; + if (dr.Count > 0) + { + this.View.Model.BatchCreateNewEntryRow("F_QBOY_Entity", dr.Count); + } + foreach (var item in dr) + { + + this.Model.SetValue("FYGID", item[0], i); + this.Model.SetValue("FJJGZ", item[1], i); + this.Model.SetValue("FJSGZ", item[2], i); + this.Model.SetValue("FTJBT", item[3], i); + this.Model.SetValue("FBMJT", item[4], i); + this.Model.SetValue("FYBBT", item[5], i); + this.Model.SetValue("FCFBT", item[6], i); + this.Model.SetValue("FKJBT", item[7], i); + this.Model.SetValue("FOTHER", item[8], i); + this.Model.SetValue("FDTGZ", item[9], i); + //this.Model.SetValue("F_GWBT", item[10], i); + //this.Model.SetValue("F_CFBT", item[11], i); + //this.Model.SetValue("F_YBBT", item[12], i); + //this.Model.SetValue("F_XYGBT", item[13], i); + //this.Model.SetValue("F_SYQBT", item[14], i); + //this.Model.SetValue("F_XCPBT", item[15], i); + i++; + } + } + catch (Exception ex) { this.View.ShowMessage("加表体数据时发生错误为:" + ex.Message); } + } + //计算前先删除当前数据 + void del_data(string FEntity_nm) + { + try + { + //取表体最大行数 + int tol = this.Model.GetEntryRowCount(FEntity_nm); + tol--; + for (int i = tol; i > -1; i--) + { + this.View.Model.DeleteEntryRow(FEntity_nm, i); //先删除空行 + } + } + catch (Exception ex) + { this.View.ShowMessage("删除表体数据时发生错误为:" + ex.Message); } + } + } +} diff --git a/aoyuPlugIn/汇威/zs_ygz.cs b/aoyuPlugIn/汇威/zs_ygz.cs new file mode 100644 index 0000000..e1ad3af --- /dev/null +++ b/aoyuPlugIn/汇威/zs_ygz.cs @@ -0,0 +1,94 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.ComponentModel; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; + +namespace aoyuPlugIn +{ + [Description("注塑月工资")] + public class zs_ygz : AbstractBillPlugIn + { + public override void BarItemClick(BarItemClickEventArgs e) + { + base.BarItemClick(e); + //this.View.ShowMessage("Hello World:" + e.BarItemKey.ToString()); + if (e.BarItemKey == "tbSCYGZ") + { + string years = this.View.Model.GetValue("F_YEAR").ToString(); + if (years == "" || years == "0") years = DateTime.Today.Year.ToString(); + string months = this.View.Model.GetValue("F_MONTH").ToString(); + del_data("F_QBOY_Entity", years, months); + } + //删除窗体数据 + void del_data(string bodynm, string y, string m) + { + try + { + //取表体最大行数 + int tol = this.Model.GetEntryRowCount(bodynm); + tol--; + for (int i = tol; i > -1; i--) + { + this.View.Model.DeleteEntryRow(bodynm, i); //先删除空行 + } + add_data_stort(y, m, bodynm); + } + catch (Exception ex) + { this.View.ShowMessage("删除表体数据时发生错误为:" + ex.Message); } + } + //加载数据 + void add_data_stort(string y, string m, string bodynm) + { + try + { + string cs = y + "," + m; + var sSql = String.Format("EXEC hw_get_ygz_zs " + cs); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + int i = 0; + if (dr.Count > 0) + { + string t = dr[0][0].ToString(); + if (t == "1") + { + this.View.ShowMessage("计算月工资失败:因为日工资有未审核单据"); + return; + } + + this.View.Model.BatchCreateNewEntryRow(bodynm, dr.Count); + } + foreach (var item in dr) + { + + this.Model.SetValue("FYGID", item[0], i); + this.Model.SetValue("FJJGZ", item[1], i); + this.Model.SetValue("FJSGZ", item[2], i); + this.Model.SetValue("FTJBT", item[3], i); + this.Model.SetValue("FBMJT", item[4], i); + this.Model.SetValue("FYBBT", item[5], i); + this.Model.SetValue("FCFBT", item[6], i); + this.Model.SetValue("FGLBT", item[7], i); + this.Model.SetValue("FOTHER", item[8], i); + this.Model.SetValue("FDTGZ", item[9], i); + i++; + } + } + catch (Exception ex) { this.View.ShowMessage("加表体数据时发生错误为:" + ex.Message); } + } + + } + } +} diff --git a/aoyuPlugIn/汇威/zxSQL.cs b/aoyuPlugIn/汇威/zxSQL.cs new file mode 100644 index 0000000..62e2023 --- /dev/null +++ b/aoyuPlugIn/汇威/zxSQL.cs @@ -0,0 +1,38 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; + + +namespace aoyuPlugIn +{ + [Description("执行SLQ语句")] + public class zxSQL: AbstractBillPlugIn + { + + public override void ButtonClick(ButtonClickEventArgs e) + { + base.ButtonClick(e); + if (e.Key.ToString() == "") + { + this.View.ShowMessage("点击按钮成功"); + } + } + + + + } +} diff --git a/aoyuPlugIn/汪总监/佳博销售订单验证库存数/jb_xsck_lb.cs b/aoyuPlugIn/汪总监/佳博销售订单验证库存数/jb_xsck_lb.cs new file mode 100644 index 0000000..105eedd --- /dev/null +++ b/aoyuPlugIn/汪总监/佳博销售订单验证库存数/jb_xsck_lb.cs @@ -0,0 +1,69 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.List.PlugIn; +using Kingdee.BOS.Core.List.PlugIn.Args; +using System.Collections; +using Kingdee.BOS.Core.List; + +namespace aoyuPlugIn +{ + [Description("销售出库提交_列表")] + public class jb_xsck_lb : AbstractListPlugIn + { + public override void BarItemClick(BarItemClickEventArgs e) + { + base.BarItemClick(e); + if (e.BarItemKey == "tbSplitSubmit" || e.BarItemKey == "tbSubmit")//提交 + { + try + { + + if (this.ListView.SelectedRowsInfo.Count > 0) + { + string tsxx = ""; + ListSelectedRowCollection listcoll = this.ListView.SelectedRowsInfo; + string[] listKey = listcoll.GetPrimaryKeyValues(); + + for (int i = 0; i < this.ListView.SelectedRowsInfo.Count; i++) + { + + + //取指定行单据编号 + //string fbillno = this.ListView.SelectedRowsInfo[i].BillNo; + string zt = this.ListView.SelectedRowsInfo[i].DataRow["FDOCUMENTSTATUS"].ToString(); + if (zt == "A" || zt == "D") + { + string fid = listKey[i]; + var sSql = String.Format("EXEC jb_get_kchz " + fid); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + + foreach (var r in dr) + { + tsxx =tsxx+ "出货单号:" + r[0].ToString() + "|物料编号:" + r[1].ToString() + " |出货数:" + r[2].ToString() + "|差异数:" + r[3].ToString()+"\r\n"; + } + } + } + if(tsxx!="") + this.View.ShowMessage(tsxx); + } + } + catch (Exception ex) { this.View.ShowMessage("提交时发生错误为:" + ex.Message); } + } + } + } +} diff --git a/aoyuPlugIn/汪总监/佳博销售订单验证库存数/jb_xsck_tj.cs b/aoyuPlugIn/汪总监/佳博销售订单验证库存数/jb_xsck_tj.cs new file mode 100644 index 0000000..8da8be8 --- /dev/null +++ b/aoyuPlugIn/汪总监/佳博销售订单验证库存数/jb_xsck_tj.cs @@ -0,0 +1,47 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +namespace aoyuPlugIn +{ + [Description("销售出库单据界面提交")] + public class jb_xsck_tj : AbstractBillPlugIn + { + public override void BarItemClick(BarItemClickEventArgs e) + { + base.BarItemClick(e); + if (e.BarItemKey == "tbSplitSubmit" || e.BarItemKey == "tbSubmit")//提交 + { + try + { + string tsxx = ""; + //e.DynamicObjects[0]["Id"] + string fid = this.View.Model.DataObject["Id"].ToString(); + var sSql = String.Format("EXEC jb_get_kchz " + fid); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + foreach (var r in dr) + { + tsxx = tsxx + "出货单号:" + r[0].ToString() + "|物料编号:" + r[1].ToString() + " |出货数:" + r[2].ToString() + "|差异数:" + r[3].ToString() + "\r\n"; + } + if(tsxx!="") + this.View.ShowMessage(tsxx); + + } + catch (Exception ex) { this.View.ShowMessage("提交时发生错误为:" + ex.Message); } + } + } + } +} diff --git a/aoyuPlugIn/汪总监/佳博销售订单验证库存数/jb_xsdd_sh.cs b/aoyuPlugIn/汪总监/佳博销售订单验证库存数/jb_xsdd_sh.cs new file mode 100644 index 0000000..380bf63 --- /dev/null +++ b/aoyuPlugIn/汪总监/佳博销售订单验证库存数/jb_xsdd_sh.cs @@ -0,0 +1,279 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.K3.Core.MFG.EntityHelper; +using System.ComponentModel; +using Kingdee.BOS; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core; +using Kingdee.BOS.Core.Const; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.Operation; +using Kingdee.BOS.Core.List; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.ConvertElement; +using Kingdee.BOS.Core.Metadata.ConvertElement.ServiceArgs; +using Kingdee.BOS.Core.Interaction; +using Kingdee.BOS.Core.Validation; +using Kingdee.BOS.Contracts; +using Kingdee.BOS.App; +using Kingdee.BOS.App.Data; +using Kingdee.BOS.Orm; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; + +namespace aoyuPlugIn +{ + [Description("销售订单--审核验证差异数")] + public class jb_xsdd_sh : AbstractOperationServicePlugIn + { + public override void EndOperationTransaction(EndOperationTransactionArgs e) + { + base.EndOperationTransaction(e); + string tsxx = ""; + foreach (DynamicObject item in e.DataEntitys) + { + long fid = Convert.ToInt64(item["ID"]); + //String sSql = String.Format(@" insert into pcdn_t_sd_kucunst(id ,beginnum,endnum,ydid,ftype,fbegin) select b.F_PCDN_STORE*100,F_PCDN_BEGINNUM,F_PCDN_ENDNUM,a.FID,'SDIN',F_PCDN_BEGINZF from pcdn_t_sd_sdinentry a, pcdn_t_sd_sdin b where a.FID=b.FID and b.fid={0} ", fid); + //DBUtils.Execute(this.Context, sSql); + var sSql = String.Format("EXEC jb_get_kchz " + fid); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + + foreach (var r in dr) + { + tsxx = "出货单号:" + r[0].ToString() + "|物料编号:" + r[1].ToString() + "|出货数:" + r[2].ToString() + "|差异数:" + r[3].ToString(); + + OperationResult.OperateResult.Insert(0, new OperateResult() + { + MessageType = MessageType.Normal, + Message = Convert.ToString(tsxx), + Name = "验证结果", + SuccessStatus = true, + } + ); + } + + } + } + + + + + + + //public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e) + //{ + // base.BeforeExecuteOperationTransaction(e); + // return; + // string tsxx = ""; + // foreach (ExtendedDataEntity extendedDataEntity in e.SelectedRows) + // { + // int DJID = 0; + // DynamicObject dynamicObjects = extendedDataEntity.DataEntity; + // DJID = Convert.ToInt32(dynamicObjects["Id"]); + + // var sSql = String.Format("EXEC jb_get_kchz " + DJID); + // var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + + // foreach (var r in dr) + // { + // tsxx ="销售订单号:"+r[0].ToString() + "|物料编号:" + r[1].ToString() + "|订单数:"+r[2].ToString()+"|差异数:"+r[3].ToString(); + + // OperationResult.OperateResult.Insert(0, new OperateResult() + // { + // MessageType = MessageType.Normal, + // Message = Convert.ToString(tsxx), + // Name = "验证结果", + // SuccessStatus = true, + // } + // ); + + // } + // //if (tsxx != "") + // //{ + // // tsxx = "提交失败!\r\n" + tsxx; + // // //throw new KDBusinessException("", tsxx); + // // //e.Cancel = false; + // // //e.CancelMessage = Convert.ToString(tsxx); + + // // OperationResult.OperateResult.Insert(0, new OperateResult() + // // { + // // MessageType = MessageType.Normal, + // // Message = Convert.ToString(tsxx), + // // Name = "验证结果", + // // SuccessStatus = true, + // // } + // // ); + + // // OperationResult.OperateResult.Insert(0, new OperateResult() + // // { + // // MessageType = MessageType.Normal, + // // Message = Convert.ToString(tsxx), + // // Name = "验证结果", + // // SuccessStatus = true, + // // } + // // ); + + // //} + + // //throw new KDBusinessException("", "物料ID为:" + MaterialID.ToString()); + // //e.CancelMessage = "物料ID为:"+MaterialID.ToString(); + + // //string sql = string.Format(@"/*dialect*/select + // // (SELECT case when count(1) > 0 then '在BOM单已使用此物料,' else ''end + // // FROM T_ENG_BOM t0 LEFT OUTER JOIN T_ENG_BOMCHILD t1 ON t0.FID = t1.FID + // // where t0.FMATERIALID={0} or t1.FMATERIALID={1})+ + // // (SELECT case when count(1) > 0 then '采购订单已使用此物料,' else ''end + // // FROM T_PUR_POORDERENTRY where FMATERIALID = {2}) as result + // // where (select top 1 FAntiCheckControl from PAEZ_t_AntiCheckControl order by fid)=1", MaterialID, MaterialID, MaterialID); + + // // string sql = string.Format(@"/*dialect*/select + // // (SELECT case when count(1) > 0 then '在BOM单已使用此物料,' else ''end + // // FROM T_ENG_BOM t0 LEFT OUTER JOIN T_ENG_BOMCHILD t1 ON t0.FID = t1.FID + // // where t0.FMATERIALID={0} or t1.FMATERIALID={1})+ + // // (SELECT case when count(1) > 0 then '采购订单已使用此物料,' else ''end + // // FROM T_PUR_POORDERENTRY where FMATERIALID = {2}) as result + // // where (select top 1 FAntiCheckControl from PAEZ_t_AntiCheckControl order by fid)=1", MaterialID, MaterialID, MaterialID); + + // // DynamicObjectCollection rows = DBUtils.ExecuteDynamicObject(this.Context, sql); + // // string result = ""; + // // foreach (DynamicObject row in rows) + // // { + // // result = row["result"].ToString(); + // // } + // // if (!"".Equals(result)) + // // { + // //e.Cancel = true; + // //e.CancelMessage = Convert.ToString(dynamicObjects["Number"]) + result + "不能反审核的!本次反审核操作失败。"; + // //e.CancelMessage = "审核测试不能反审核的!本次反审核操作失败。"; + + // // break; + // // } + // } + + //} + string getjg(BeforeExecuteOperationTransaction e) + { + string tsxx = ""; + int k = 0; + foreach (ExtendedDataEntity extendedDataEntity in e.SelectedRows) + { + + int DJID = 0; + DynamicObject dynamicObjects = extendedDataEntity.DataEntity; + DJID = Convert.ToInt32(dynamicObjects["Id"]); + + var sSql = String.Format("EXEC jb_get_kchz " + DJID); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + + foreach (var r in dr) + { + tsxx = tsxx + "销售订单号:" + r[0].ToString() + "|物料编号:" + r[1].ToString() + "|订单数:" + r[2].ToString() + "|差异数:" + r[3].ToString() + "\r\n"; + + } + if (tsxx != "") + { + tsxx = "提交失败!\r\n" + tsxx; + //throw new KDBusinessException("", tsxx); + //e.Cancel = false; + //e.CancelMessage = Convert.ToString(tsxx); + + OperationResult.OperateResult.Insert(0, new OperateResult() + { + MessageType = MessageType.Normal, + Message = Convert.ToString(tsxx), + Name = "验证结果", + SuccessStatus = true, + } + ); + OperationResult.OperateResult.Insert(0, new OperateResult() + { + MessageType = MessageType.Normal, + Message = Convert.ToString(tsxx), + Name = "验证结果1", + SuccessStatus = true, + } + ); + + } + k++; + } + + return ""; + } + string getjg2(BeforeExecuteOperationTransaction e) + { + string tsxx = ""; + foreach (ExtendedDataEntity extendedDataEntity in e.SelectedRows) + { + int DJID = 0; + DynamicObject dynamicObjects = extendedDataEntity.DataEntity; + DJID = Convert.ToInt32(dynamicObjects["Id"]); + + var sSql = String.Format("EXEC jb_get_kchz " + DJID); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + + foreach (var r in dr) + { + tsxx = tsxx + "销售订单号:" + r[0].ToString() + "|物料编号:" + r[1].ToString() + "|订单数:" + r[2].ToString() + "|差异数:" + r[3].ToString() + "\r\n"; + + } + if (tsxx != "") + { + tsxx = "提交失败!\r\n" + tsxx; + //throw new KDBusinessException("", tsxx); + //e.Cancel = false; + //e.CancelMessage = Convert.ToString(tsxx); + + OperationResult.OperateResult.Insert(0, new OperateResult() + { + MessageType = MessageType.Normal, + Message = Convert.ToString(tsxx), + Name = "验证结果", + SuccessStatus = true, + } + ); + + } + + //throw new KDBusinessException("", "物料ID为:" + MaterialID.ToString()); + //e.CancelMessage = "物料ID为:"+MaterialID.ToString(); + + //string sql = string.Format(@"/*dialect*/select + // (SELECT case when count(1) > 0 then '在BOM单已使用此物料,' else ''end + // FROM T_ENG_BOM t0 LEFT OUTER JOIN T_ENG_BOMCHILD t1 ON t0.FID = t1.FID + // where t0.FMATERIALID={0} or t1.FMATERIALID={1})+ + // (SELECT case when count(1) > 0 then '采购订单已使用此物料,' else ''end + // FROM T_PUR_POORDERENTRY where FMATERIALID = {2}) as result + // where (select top 1 FAntiCheckControl from PAEZ_t_AntiCheckControl order by fid)=1", MaterialID, MaterialID, MaterialID); + + // string sql = string.Format(@"/*dialect*/select + // (SELECT case when count(1) > 0 then '在BOM单已使用此物料,' else ''end + // FROM T_ENG_BOM t0 LEFT OUTER JOIN T_ENG_BOMCHILD t1 ON t0.FID = t1.FID + // where t0.FMATERIALID={0} or t1.FMATERIALID={1})+ + // (SELECT case when count(1) > 0 then '采购订单已使用此物料,' else ''end + // FROM T_PUR_POORDERENTRY where FMATERIALID = {2}) as result + // where (select top 1 FAntiCheckControl from PAEZ_t_AntiCheckControl order by fid)=1", MaterialID, MaterialID, MaterialID); + + // DynamicObjectCollection rows = DBUtils.ExecuteDynamicObject(this.Context, sql); + // string result = ""; + // foreach (DynamicObject row in rows) + // { + // result = row["result"].ToString(); + // } + // if (!"".Equals(result)) + // { + //e.Cancel = true; + //e.CancelMessage = Convert.ToString(dynamicObjects["Number"]) + result + "不能反审核的!本次反审核操作失败。"; + //e.CancelMessage = "审核测试不能反审核的!本次反审核操作失败。"; + + // break; + // } + } + return ""; + } + } +} diff --git a/aoyuPlugIn/汪总监/佳博销售订单验证库存数/jb_xsdd_yzkcs.cs b/aoyuPlugIn/汪总监/佳博销售订单验证库存数/jb_xsdd_yzkcs.cs new file mode 100644 index 0000000..cf98edd --- /dev/null +++ b/aoyuPlugIn/汪总监/佳博销售订单验证库存数/jb_xsdd_yzkcs.cs @@ -0,0 +1,97 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using System.Data; +using System.Collections; +using System.Windows.Forms; +namespace aoyuPlugIn +{ + [Description("销售订单验证库存数")] + public class jb_xsdd_yzkcs : AbstractBillPlugIn + { + public override void BeforeSave(BeforeSaveEventArgs e) + { + + base.BeforeSave(e); + + + ////取表体最大行数 + //string FEntity_nm = "T_SAL_ORDERENTRY"; + //int tol = this.Model.GetEntryRowCount(FEntity_nm); + //计算评审天数 + //销售组 FSaleGroupId,FSALEGROUPID + DynamicObject obxsz = this.View.Model.GetValue("FSaleGroupId") as DynamicObject; + string xsz = obxsz["Name"].ToString(); + try + { + //FSaleOrderEntry + string ORM_NM = "SaleOrderEntry";//你的单据体ORM实体名 + DynamicObject obj = this.Model.DataObject; + DynamicObjectCollection rows = obj[ORM_NM] as DynamicObjectCollection; + int k = 0; + ComboBox cmb = new ComboBox();DataTable tb = new DataTable(); + tb.Columns.Add("wlno");tb.Columns.Add("fqty"); + try { + foreach (var r in rows) + { + DynamicObject obwl = this.View.Model.GetValue("FMaterialId", k) as DynamicObject; + string wlno = obwl["Number"].ToString(); + + if (cmb.Items.Contains(wlno) == false) + { + cmb.Items.Add(wlno); + DataRow nr = tb.NewRow(); + nr[0] = wlno; + string dds = this.View.Model.GetValue("FQty", k).ToString(); + nr[1] = dds; + tb.Rows.Add(nr); + } + else + { + DataRow[] nr = tb.Select("wlno='" + wlno + "'"); + nr[0]["fqty"] = (Convert.ToDouble(nr[0]["fqty"].ToString()) + Convert.ToDouble(this.View.Model.GetValue("FQty",k).ToString())).ToString(); + } + k++; + } + } + catch(Exception ex) { MessageBox.Show(ex.Message); } + k = 0; + foreach (DataRow r in tb.Rows) + { + string wlno = r["wlno"].ToString(); + Double fqty = Convert.ToDouble( r["fqty"].ToString()); + + var sSql = String.Format("EXEC jb_get_kchz " + xsz + "," + wlno); + var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql); + Double cys =Convert.ToDouble(dr[0]["cys"].ToString()); + if (fqty > cys) + { + this.View.ShowMessage("物料编码:" + wlno + "的订单数" + fqty.ToString() + "大于库存管理报表中的差异数" + cys.ToString() + ",不能保存"); + + //e.Cancel = true; + } + k++; + } + } + catch (Exception ex) { this.View.ShowMessage("验证数据时发生错误为:" + ex.Message); + e.Cancel = true; + } + + } + + } +} diff --git a/aoyuPlugIn/皇顶/hd_xsdd_xsddps.cs b/aoyuPlugIn/皇顶/hd_xsdd_xsddps.cs new file mode 100644 index 0000000..d23f67d --- /dev/null +++ b/aoyuPlugIn/皇顶/hd_xsdd_xsddps.cs @@ -0,0 +1,74 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Kingdee.BOS; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.SqlBuilder; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using System.Data; +using System.Collections; + +namespace aoyuPlugIn +{ + [Description("销售订单评审")] + public class hd_xsdd_xsddps : AbstractBillPlugIn + { + public override void BeforeSave(BeforeSaveEventArgs e) + { + + base.BeforeSave(e); + //F_HDIN_DDPS + //订单日期 + string ddrq = this.View.Model.GetValue("FDate").ToString(); + + ////取表体最大行数 + //string FEntity_nm = "T_SAL_ORDERENTRY"; + //int tol = this.Model.GetEntryRowCount(FEntity_nm); + //计算评审天数 + try + { + string ORM_NM = "SaleOrderEntry";//你的单据体ORM实体名 + DynamicObject obj = this.Model.DataObject; + DynamicObjectCollection rows = obj[ORM_NM] as DynamicObjectCollection; + + foreach (var r in rows) + { + //FDeliveryDate DeliveryDate + string yhrq = r["DeliveryDate"].ToString(); + //交货期和下单日期的相差天数 + string xcts = getRQC(Convert.ToDateTime(ddrq), Convert.ToDateTime(yhrq)); + r["F_HDIN_SCTS"] = xcts; + //string sczq= r["F_Hdin_SCZQ"].ToString(); + //string scts = r["F_HDIN_SCTS"].ToString(); + //string psts = r["F_HDIN_PSTS"].ToString(); + this.View.ShowMessage(yhrq); + string sl = r["F_FQ1TY1"].ToString(); + + + } + } + catch (Exception ex) { this.View.ShowMessage("组合表数据时发生错误为:" + ex.Message); } + //this.View.ShowMessage(ddrq); + //e.Cancel = true; + } + //计算日期差 + string getRQC(DateTime tm1,DateTime tm2) + { + int ts = 0; + TimeSpan tsc = tm2.Subtract(tm1); + ts = tsc.Days + 1; + return ts.ToString(); + } + + } +}