using Kingdee.BOS.Core.Bill.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel; using Kingdee.BOS.Core.DynamicForm; using Kingdee.BOS.Core; using Kingdee.BOS.Util; using System; using System.Collections.Generic; using System.ComponentModel; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using Kingdee.BOS.Core.List; using Kingdee.BOS.Orm.DataEntity; using System.Web; using Kingdee.BOS.App.Data; using Kingdee.BOS.Core.Deploy; namespace Pilot_KD_Parino.Sal_Order { [HotUpdate] [Description("销售订单--查看业绩分摊单")] public class Bill : AbstractBillPlugIn { string currentRecId; public override void OnInitialize(InitializeEventArgs e) { base.OnInitialize(e); TabControl ctl = (TabControl)this.View.GetControl("FTab"); ctl.SetFireSelChanged(true); } public override void TabItemSelectedChange(TabItemSelectedChangeEventArgs e) { base.TabItemSelectedChange(e); //if (e.TabKey.Equals("FTab_VRYF_P_qtr")) if (e.TabKey.Equals("FTAB_VRYF_P_QTR")) { var Bilno = Convert.ToString(this.View.Model.GetValue("FBILLNO")); //获取已打开的view IDynamicFormView view = this.View.GetView(currentRecId); if (view != null) { //关闭已打开view view.Close(); this.View.SendDynamicFormAction(view); } ListShowParameter ListShowParameter = new ListShowParameter(); //显示业绩分摊单 //声明列表显示参数 var listShowParameter = new ListShowParameter(); //声明是奖惩记录单列表 listShowParameter.FormId = "QPHY_PerformanceSharing"; listShowParameter.PageId = Guid.NewGuid().ToString(); //设置过滤条件,只需要当前身份证号就行了 listShowParameter.ListFilterParameter.Filter = string.Format(" FSourceBillNo = '{0}' ", Bilno); //支持返回数据 listShowParameter.IsLookUp = false; ListShowParameter.ParentPageId = this.View.PageId; listShowParameter.OpenStyle.ShowType = ShowType.InContainer; listShowParameter.OpenStyle.TagetKey = "F_VRYF_Panel_83g"; listShowParameter.FilterSchemeId = "672f043629cf3e"; currentRecId = listShowParameter.PageId; this.View.ShowForm(listShowParameter); } } public override void AfterDoOperation(AfterDoOperationEventArgs e) { base.AfterDoOperation(e); //下载word if (e.Operation.Operation.Equals("DownWord")) { //获取时间戳 var ts = DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0); var _TimeSpan = Convert.ToInt64(ts.TotalSeconds).ToString(); DynamicObject FSaleOrgId = this.View.Model.GetValue("FSaleOrgId") as DynamicObject; var oId = Convert.ToInt32(FSaleOrgId["Id"]); DateTime FDATE = Convert.ToDateTime(this.View.Model.GetValue("FDATE")); string F_cocntractnumber = Convert.ToString(this.View.Model.GetValue("F_contractnumber")); DynamicObject FCustId = this.View.Model.GetValue("FCustId") as DynamicObject; DynamicObject FSalerId = this.View.Model.GetValue("FSalerId") as DynamicObject; string FIsDebugging = this.View.Model.GetValue("FIsDebugging")?.ToString(); DynamicObject F_projectname = this.View.Model.GetValue("F_projectname") as DynamicObject; if (FCustId == null) { this.View.ShowErrMessage("客户不允许为空!"); return; } if (FSalerId == null) { this.View.ShowErrMessage("销售员不允许为空!"); return; } if (F_projectname == null && oId != 438223) { this.View.ShowErrMessage("工程项目不允许为空"); return; } string projectname = ""; if (oId != 438223) { projectname = F_projectname["NAME"]?.ToString(); //特殊符号平替解决方法: projectname = projectname.Replace("/", "/"); projectname = projectname.Replace("+", "➕"); projectname = projectname.Replace("*", " "); projectname = projectname.Replace(":", ":"); } string FPath = string.Format(@"D:\导出Word\{0}\{1}\{2}\{3}年\{4}月\{5}日\{6}.docx", this.Context.DataCenterName, "销售订单", this.View.Model.DataObject["Billno"], DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, string.Format("{0}-{1}-{2}-{3}-{4}", FDATE.ToString("yyyy-MM-dd"), F_cocntractnumber , string.IsNullOrWhiteSpace(projectname) ? "" : projectname, FCustId == null ? "" : FCustId["NAME"], FSalerId == null ? "" : FSalerId["NAME"])); //获取订单类型编码 DynamicObject F_Ordercategory = this.View.Model.GetValue("F_Ordercategory") as DynamicObject; if (F_Ordercategory == null) { return; } string FOrdercategory = Convert.ToString(F_Ordercategory["FNumber"]); //获取金额 string fBILLNO = this.View.Model.GetValue("FBILLNO").ToString(); string sql = string.Format(@"/*dialect*/Select B.FBILLALLAMOUNT as 'FBILLALLAMOUNT' From T_SAL_ORDER A JOIN T_SAL_ORDERFIN B on A.FID = B.FID Where A.FBILLNO = '{0}'", fBILLNO); var sqlList = DBUtils.ExecuteDynamicObject(Context, sql); var fAmount = Convert.ToDecimal(sqlList[0]["FBILLALLAMOUNT"]); if (fAmount >= 200000 && FOrdercategory == "P") { FOrdercategory = "PP"; } var ntess = FIsDebugging; if (FOrdercategory == "SX" && FIsDebugging == "1") { FOrdercategory = "SX-1"; } if (FOrdercategory == "SX" && FIsDebugging == "0") { FOrdercategory = "SX-2"; } //判断退货/换货 var splitList = F_cocntractnumber.Split('-'); if (splitList.Count() > 1) { if (splitList[1].ToString().Contains("TH")) { FOrdercategory = "TH"; } else { FOrdercategory = "HH"; } } //获取模板地址 var TempModelPath = SQL.SqlManage.GetTempModelPath(this.Context, FOrdercategory); if (TempModelPath == null) { this.View.ShowErrMessage("找不到对应的word模板"); return; } //获取内容 var TempModelData = SQL.SqlManage.GetTempModelData(this.Context, Convert.ToString(this.View.Model.DataObject["Id"]), FOrdercategory); // 提取文件名 string fileProjectname = Path.GetFileName(FPath); // 在临时文件目录,生成一个完整的文件名: C:\Program Files\Kingdee\K3Cloud\WebSite\...\JD.xls string filePath = PathUtils.GetPhysicalPath(KeyConst.TEMPFILEPATH, Path.GetFileName(FPath)); // 生成一个供用户下载文件的url地址: http:\\localhost\K3Cloud\...\JD.xls string fileUrl = PathUtils.GetServerPath(KeyConst.TEMPFILEPATH, Path.GetFileName(FPath)); //另存为word Pilot_KD_Parino.Common.CommonHelper.DolondWord(Convert.ToString(TempModelPath[0]["FTempPath"]), TempModelData, FPath, FOrdercategory); //另存为word Pilot_KD_Parino.Common.CommonHelper.DolondWord(Convert.ToString(TempModelPath[0]["FTempPath"]), TempModelData, filePath, FOrdercategory); //下载word if (!string.IsNullOrEmpty(FPath)) { //打开文件下载界面 DynamicFormShowParameter showParameter = new DynamicFormShowParameter(); showParameter.FormId = "BOS_FileDownload"; showParameter.OpenStyle.ShowType = ShowType.Modal; showParameter.CustomComplexParams.Add("url", fileUrl); //显示 this.View.ShowForm(showParameter); } } string opt = e.Operation.Operation; if (opt == "Save" && e.OperationResult.IsSuccess) { this.View.Refresh(); } } private string GetWebAppRootUrl() { Uri siteuri; if (Uri.TryCreate(HttpContext.Current.Request.ApplicationPath, UriKind.Absolute, out siteuri)) { return siteuri.AbsoluteUri; } return ""; } } }