Files
Gatedge.HuiWei.BOS.JJGZMJ/aoyuPlugIn/汇威/MJ_qtyf.cs
2025-06-20 09:17:36 +08:00

207 lines
8.7 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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<string>(
"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();
}
}
}
}