GZ_KD_Parino/GZ_KD_Parino/Sal_Order/OrderSubmitCreatePms.cs
liqionghai a032c22019 1
2025-09-04 12:01:26 +08:00

107 lines
4.9 KiB
C#

using GZ_KD_Parino.SQL;
using Kingdee.BOS;
using Kingdee.BOS.App;
using Kingdee.BOS.Contracts;
using Kingdee.BOS.Core;
using Kingdee.BOS.Core.Bill;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.Interaction;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Core.Metadata.FieldElement;
using Kingdee.BOS.Core.Metadata.FormElement;
using Kingdee.BOS.Orm;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Util;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GZ_KD_Parino.Sal_Order
{
[HotUpdate]
[Description("销售订单--提交创建PMS htbaseinfo 对象")]
public class OrderSubmitCreatePms : AbstractOperationServicePlugIn
{
public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e)
{
base.AfterExecuteOperationTransaction(e);
foreach (var rows in e.SelectedRows)
{
var Billobj = rows.DataEntity;
//获取单据FID
var SaleOrgId = Billobj["SaleOrgId"] as DynamicObject;
string Resultstring = "";
var key = SqlManage.SetDockingPLMLog(this.Context, "提交创建PMS htbaseinfo 对象", Convert.ToInt32(Billobj["Id"]));
try
{
if (Convert.ToString(SaleOrgId["Number"]) == "PL")
{
//获取单据FID
var Billno = Convert.ToString(Billobj["Billno"]);
//获取日期
var FDate = Convert.ToDateTime(Billobj["Date"]);
//FID
var FID = Convert.ToString(Billobj["id"]);
//获取订单类型编码
DynamicObject F_Ordercategory = Billobj["F_Ordercategory"] as DynamicObject;
//获取销售订单数据
var data = SqlManage.GetSaleOrderData3(this.Context, Convert.ToString(Billobj["Id"]));
if (data.Count > 0)
{
var Json = new
{
name = data[0]["纸质合同号"],// 销售订单纸质合同号
khmc = data[0]["客户名称"],// 销售订单客户名称
ddbh = data[0]["单据编号"],//销售订单单据编号
xmmc = data[0]["工程项目名称"],// 销售订单工程项目名称
ywy = data[0]["业务员"], //销售订单销售业务员名称
sj = data[0]["商机"],//销售订单商机FID
htje = data[0]["金额"],//销售订单财务明细的价税合计(本位币)
sjid = data[0]["商机ID"],//销售订单上商机的值
zzbm = data[0]["组织编码"] //销售订单销售组织的组织编码
};
//调用PMS接口
var Token = Common.CommonHelper.PMSLogin(data, this.Context, JsonConvert.SerializeObject(Json), "htbaseinfo", Convert.ToInt32(Billobj["Id"]));
if (Token != "")
{
Resultstring = Common.CommonHelper.PushPMSItem(data, this.Context, JsonConvert.SerializeObject(Json), "htbaseinfo", Token, Convert.ToInt32(Billobj["Id"]));
//预防二次提交
SqlManage.UpdateSubmitF_VRYF_CheckBox_re5(this.Context, Convert.ToString(Billobj["Id"]));
}
}
}
//修改日志为成功
SqlManage.UpdateDockingPLMLog(this.Context, key, "100", "", Resultstring, Convert.ToString(Billobj["Id"]), "PMS合同基本信息","插件日志");
}
catch (Exception ex)
{
//修改日志为异常
SqlManage.UpdateDockingPLMLog(this.Context, key, "4", ex.Message, "", Convert.ToString(Billobj["Id"]), "PMS合同基本信息", "插件日志");
}
}
}
public override void OnPreparePropertys(PreparePropertysEventArgs e)
{
base.OnPreparePropertys(e);
//添加日期
e.FieldKeys.Add("FDate");
//添加日期
e.FieldKeys.Add("F_Ordercategory");
//销售组织
e.FieldKeys.Add("FSaleOrgId");
}
}
}