This commit is contained in:
2025-08-28 19:23:07 +08:00
parent 2066763c90
commit e3cf45c336
4 changed files with 80 additions and 61 deletions

View File

@@ -1,20 +1,17 @@
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.BusinessEntity.BusinessFlow;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.List.PlugIn;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Util;
using Kingdee.K3.SCM.Common.BusinessEntity.Sales;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Core.Bill.PlugIn.Args;
using static System.Net.WebRequestMethods;
using Newtonsoft.Json;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS;
namespace NoPackageMachine
{
@@ -25,61 +22,56 @@ namespace NoPackageMachine
{
base.BeforeExecuteOperationTransaction(e);
var formId = this.BusinessInfo.GetForm().Id;
try
// 获取销售订单信息
foreach (var rows in e.SelectedRows)
{
// 获取销售订单信息
foreach (var entry in e.DataEntitys)
var entry = rows.DataEntity;
var s = JsonConvert.SerializeObject(entry);
var order = JsonConvert.DeserializeObject<SalOrderModel>(s);
foreach (var item in order.SaleOrderEntry)
{
var s = JsonConvert.SerializeObject(entry);
var order = JsonConvert.DeserializeObject<SalOrderModel>(s);
foreach (var item in order.SaleOrderEntry)
string sql = string.Format("/*dialect*/select m0.FNUMBER PMaterialCode,m.FMATERIALID,m.FNUMBER MaterialCode,t.FSPECIFICATION FModel,sum(isnull(i.FBASEQTY,0)) AS Qty from T_ENG_BOM a left jOIN T_ORG_ORGANIZATIONS O ON O.FORGID = a.FUSEORGID " +
"left join T_ENG_BOMCHILD b on a.FID=b.FID " +
"left join T_BD_MATERIAL m0 on m0.FMATERIALID=a.FMATERIALID " +
"left join T_BD_MATERIAL m on m.FMATERIALID=b.FMATERIALID " +
"left join T_BD_MATERIAL_L t on t.FMATERIALID=m.FMATERIALID " +
"left join T_BD_MATERIALBASE s on s.FMATERIALID=m.FMATERIALID " +
"left join t_BD_MaterialStock ms on ms.fmaterialid=m.fmaterialid " +
"left join T_STK_INVENTORY i on i.FMATERIALID=m.FMASTERID and i.fstockorgid=m0.fuseorgid " +
"left JOIN T_BD_Stock invSIC ON invSIC.FSTOCKID = i.FSTOCKID " +
"left JOIN T_BD_Stock SIC ON SIC.FSTOCKID = ms.FSTOCKID " +
"where a.FDOCUMENTSTATUS='C' and a.FFORBIDSTATUS='A' and O.fnumber='PL' and m0.FMATERIALID='{0}' and (m.fnumber like 'N.%' or m.fnumber like 'M.%') group by m0.FNUMBER,m.FNUMBER,t.FSPECIFICATION,m.FMATERIALID", item.MaterialId_Id);
var data = DBServiceHelper.ExecuteDynamicObject(this.Context, sql);
if (data != null && data.Count > 0)
{
string sql = string.Format("/*dialect*/select m0.FNUMBER PMaterialCode,m.FMATERIALID,m.FNUMBER MaterialCode,t.FSPECIFICATION FModel,sum(isnull(i.FBASEQTY,0)) AS Qty from T_ENG_BOM a left jOIN T_ORG_ORGANIZATIONS O ON O.FORGID = a.FUSEORGID " +
"left join T_ENG_BOMCHILD b on a.FID=b.FID " +
"left join T_BD_MATERIAL m0 on m0.FMATERIALID=a.FMATERIALID " +
"left join T_BD_MATERIAL m on m.FMATERIALID=b.FMATERIALID " +
"left join T_BD_MATERIAL_L t on t.FMATERIALID=m.FMATERIALID " +
"left join T_BD_MATERIALBASE s on s.FMATERIALID=m.FMATERIALID " +
"left join t_BD_MaterialStock ms on ms.fmaterialid=m.fmaterialid " +
"left join T_STK_INVENTORY i on i.FMATERIALID=m.FMASTERID and i.fstockorgid=m0.fuseorgid " +
"left JOIN T_BD_Stock invSIC ON invSIC.FSTOCKID = i.FSTOCKID " +
"left JOIN T_BD_Stock SIC ON SIC.FSTOCKID = ms.FSTOCKID " +
"where a.FDOCUMENTSTATUS='C' and a.FFORBIDSTATUS='A' and O.fnumber='PL' and m0.FMATERIALID='{0}' and (m.fnumber like 'N.%' or m.fnumber like 'M.%') group by m0.FNUMBER,m.FNUMBER,t.FSPECIFICATION,m.FMATERIALID", item.MaterialId_Id);
var data = DBServiceHelper.ExecuteDynamicObject(this.Context, sql);
if (data != null && data.Count > 0)
if (formId == "SAL_SaleOrder")
{
if (formId == "SAL_SaleOrder")
if (data.Count > 1)
{
if (data.Count > 1)
{
sql = string.Format("/*dialect*/update t_sal_orderentry set F_ISLUOJI='是' where FENTRYID={0}", item.Id);
}
else
{
sql = string.Format("/*dialect*/update t_sal_orderentry set F_ISLUOJI='否',F_LJBM='{0}',F_LUOJIDESC='{1}' where FENTRYID={2}", data[0]["FMATERIALID"].ToString(), data[0]["FModel"].ToString(), item.Id);
}
sql = string.Format("/*dialect*/update t_sal_orderentry set F_ISLUOJI='是' where FENTRYID={0}", item.Id);
}
else
{
if (data.Count > 1)
{
sql = string.Format("/*dialect*/update t_sal_xorderentry set F_ISLUOJI='是' where FENTRYID={0}", item.Id);
}
else
{
sql = string.Format("/*dialect*/update t_sal_xorderentry set F_ISLUOJI='否',F_LJBM='{0}',F_LUOJIDESC='{1}' where FENTRYID={2}", data[0]["FMATERIALID"].ToString(), data[0]["FModel"].ToString(), item.Id);
}
sql = string.Format("/*dialect*/update t_sal_orderentry set F_ISLUOJI='否',F_LUOJICODE='{0}',F_LUOJIDESC='{1}',F_LJBM='{2}' where FENTRYID={3}", data[0]["MaterialCode"].ToString(), data[0]["FModel"].ToString(), data[0]["FMATERIALID"].ToString(), item.Id);
}
DBServiceHelper.Execute(this.Context, sql);
}
else
{
if (data.Count > 1)
{
sql = string.Format("/*dialect*/update t_sal_xorderentry set F_ISLUOJI='是' where FENTRYID={0}", item.Id);
}
else
{
sql = string.Format("/*dialect*/update t_sal_xorderentry set F_ISLUOJI='否',F_LUOJICODE='{0}',F_LUOJIDESC='{1}',F_LJBM='{2}' where FENTRYID={3}", data[0]["MaterialCode"].ToString(), data[0]["FModel"].ToString(), data[0]["FMATERIALID"].ToString(), item.Id);
}
}
DBServiceHelper.Execute(this.Context, sql);
}
}
}
catch(Exception ex)
{
throw new KDBusinessException("",ex.Message);
}
}
}
}
}