220 lines
9.5 KiB
C#
220 lines
9.5 KiB
C#
|
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 "";
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|