This commit is contained in:
李狗蛋 2025-04-22 19:26:31 +08:00
parent 8bbf5d8e3c
commit 63782940f4
22 changed files with 372 additions and 6 deletions

View File

@ -53,7 +53,7 @@ namespace GZ_LTHPilot_ORDER.Common
}
for (int i = 0; i < datatable2.Columns.Count; i++)
{
newRow.Cells[i].ReplaceText("{" + i.ToString() + "}", Convert.ToString(item[i]).TrimEnd('0', '.'));
newRow.Cells[i].ReplaceText("{" + i.ToString() + "}", Convert.ToString(item[i]));
}
}
}
@ -90,18 +90,18 @@ namespace GZ_LTHPilot_ORDER.Common
//插入一个组合
#region
Row newRowfour = table.InsertRow(previousRowfour, 1);
newRowfour.Cells[1].ReplaceText("{9}", Convert.ToString(Rows[0][11]).TrimEnd('0', '.'));
newRowfour.Cells[1].ReplaceText("{9}", Convert.ToString(Rows[0][11]));
foreach (var Row in Rows)
{
Row newRowthree = table.InsertRow(previousRowthree, 1);
for (int i = 0; i < 9; i++)
{
newRowthree.Cells[i].ReplaceText("{" + i.ToString() + "}", Convert.ToString(Row[i]).TrimEnd('0', '.'));
newRowthree.Cells[i].ReplaceText("{" + i.ToString() + "}", Convert.ToString(Row[i]));
}
document.ReplaceText("{10}", Convert.ToString(Row[10]).TrimEnd('0', '.'));
document.ReplaceText("{10}", Convert.ToString(Row[10]));
}
Row newRow = table.InsertRow(previousRow, 1);
newRow.Cells[0].ReplaceText("{0}", string.Format("{0}、{1}", ConvertToChineseUppercase(Index), Convert.ToString(item)).TrimEnd('0', '.'));
newRow.Cells[0].ReplaceText("{0}", string.Format("{0}、{1}", ConvertToChineseUppercase(Index), Convert.ToString(item)));
#endregion
Index--;

View File

@ -234,6 +234,9 @@
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="PRD_PPBOMCHANGE\PLTH.cs" />
<Compile Include="PRD_PPBOMCHANGE\PLTHForm.cs" />
<Compile Include="T_IV_SALESIC\AuditS_Order.cs" />
<Compile Include="Common\CommonHelper.cs" />
<Compile Include="PRD_PPBOM\AuditPOM.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
@ -250,6 +253,7 @@
<Compile Include="SAL_RETURNSTOCK\AuditSal_Order.cs" />
<Compile Include="SQL\SqlManage.cs" />
<Compile Include="SUB_PPBOM\AuditPOM.cs" />
<Compile Include="T_IV_SALESIC\UnAuditS_Order.cs" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
@ -257,6 +261,7 @@
<ItemGroup>
<WCFMetadata Include="Connected Services\" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="packages\SkiaSharp.NativeAssets.macOS.2.88.8\build\net462\SkiaSharp.NativeAssets.macOS.targets" Condition="Exists('packages\SkiaSharp.NativeAssets.macOS.2.88.8\build\net462\SkiaSharp.NativeAssets.macOS.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">

72
PRD_PPBOMCHANGE/PLTH.cs Normal file
View File

@ -0,0 +1,72 @@
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Dynamic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GZ_LTHPilot_ORDER.PRD_PPBOMCHANGE
{
[Description("表单插件:生产用料清单变更单,点击批量替换#按钮实现批量替换功能"), HotUpdate]
public class PLTH : AbstractDynamicFormPlugIn
{
public override void BarItemClick(BarItemClickEventArgs e)
{
base.BarItemClick(e);
//按钮点击事件
if (e.BarItemKey.Equals("GZTH_PLTH", StringComparison.OrdinalIgnoreCase))
{
string resultWlFID = "";
//获取单据的生产组织的FID值
var FPrdOrg = (Kingdee.BOS.Orm.DataEntity.DynamicObject)this.View.Model.GetValue("FPrdOrgId");
if (FPrdOrg != null)
{
//获取生产组织ID值
var FPrdOrgId = Convert.ToString(FPrdOrg["Id"]);
//打开动态表单,并对动态表单传值
DynamicFormShowParameter parameter = new DynamicFormShowParameter();
//动态表单ID值
parameter.FormId = "YKQC_SCYLQDBGPLTH";
parameter.MultiSelect = false;
//获取生产组织的FID值发送到打开的动态表单
parameter.CustomComplexParams.Add("EntryPrimaryKeys", FPrdOrgId);
this.View.ShowForm(parameter, result =>
{
if (result.ReturnData != null)
{
//记录动态窗口的返回值
resultWlFID = result.ReturnData.ToString();
//获取单据体数据包
var entiy = this.View.BillBusinessInfo.GetEntity("FEntity");
var entityObjs = this.View.Model.GetEntityDataObject(entiy);
if (entityObjs != null)
{
foreach (var entityObj in entityObjs)
{
/*
0*/
if (Convert.ToString(entityObj["ChangeType"]) == "3")
{
//变更类型为变更后分子赋值为0
this.View.Model.SetItemValueByNumber("FNumerator", "0", Convert.ToInt32(entityObj["Seq"])-1);
}
if (Convert.ToString(entityObj["ChangeType"]) == "3")
{
//变更类型为变更前,执行复制行操作
}
}
}
}
});
}
}
}
}
}

View File

@ -0,0 +1,42 @@
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GZ_LTHPilot_ORDER.PRD_PPBOMCHANGE
{
[Description("动态窗口表单插件:生产用料清单表单批量替换按钮,返回选择物料编码"), HotUpdate]
public class PLTHForm : AbstractDynamicFormPlugIn
{
string FPrdOrgId;
public override void OnLoad(EventArgs e)
{
base.OnLoad(e);
//接受传过来的生产组织FID并对窗口的组织字段进行赋值
FPrdOrgId = Convert.ToString(this.View.OpenParameter.GetCustomParameter("EntryPrimaryKeys"));
this.View.Model.SetValue("F_OrgId_83g", FPrdOrgId);
}
public override void BarItemClick(BarItemClickEventArgs e)
{
base.BarItemClick(e);
if (e.BarItemKey.Equals("YKQC_tbButton", StringComparison.OrdinalIgnoreCase))
{
//点击确定按钮,将数据传回生产用料清单变更单
var returnData = (DynamicObject)this.View.Model.GetValue("F_Base_qtr");
if (returnData != null)
{
var WLFId = Convert.ToString(returnData["Id"]);
this.View.ReturnToParentWindow(WLFId);
}
}
}
}
}

View File

@ -1,4 +1,6 @@
using Kingdee.BOS;
using FarPoint.Excel.EntityClassLibrary.SpreadsheetML;
using Kingdee.BOS;
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.ServiceHelper;
using System;
@ -298,5 +300,87 @@ namespace GZ_LTHPilot_ORDER.SqlManage
",FID);
DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null);
}
//根据红字发票FID获取查询出是否由蓝字发票进行下推获取蓝字发票的FIDFENTRYID
public static DynamicObjectCollection GetBuleFpFID(Context ctx,string FID)
{
string sql = string.Format(@"/*dialect*/
EXEC GetLPFid_GZTH '{0}'
",FID);
DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null);
string LpFidSql = string.Format(@"/*dialect*/
SELECT * FROM GZ_AuditTHHZFP
");
return DBServiceHelper.ExecuteDynamicObject(ctx, LpFidSql.ToString(), null, null, CommandType.Text, null);
}
//根据红字发票查询蓝字发票的FID查询销售订单的FID和FENTRYID开票数量和开票金额
public static DynamicObjectCollection GetHZFPSal_ORDERFidAndFentryid(Context ctx,string FID)
{
string sql = string.Format(@"/*dialect*/
EXEC GetIV_SALESICSal_OrderFID_GZTH '{0}'
", FID);
DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null);
//更新GZTH_AuditSal_OrderFP表
string UpSql = string.Format(@"/*dialect*/
UPDATE A
SET A.[] = B.[],A.[] = B.[]
FROM GZTH_AuditSal_OrderFP A
INNER JOIN GZ_AuditTHHZFP B ON A.FID = B.FID AND A.FENTRYID = B.FENTRYID
");
DBServiceHelper.ExecuteDynamicObject(ctx, UpSql.ToString(), null, null, CommandType.Text, null);
//查询表并且返回表的数据
string getSql = string.Format(@"/*dialect*/
SELECT * FROM GZTH_AuditSal_OrderFP
");
return DBServiceHelper.ExecuteDynamicObject(ctx, getSql.ToString(), null, null, CommandType.Text, null);
}
//根据获取的销售订单FID和FentryId更新开票数量和开票金额
public static void UpSal_OrderKPJEAndKPSL(Context ctx,string FID,string FENTRYID,string F_INVOICEQTY,string F_F_INVOICEAMOUNT)
{
string sql = string.Format(@"/*dialect*/
EXEC TrueUpdateSal_OrderF_INVOICEQTYAndF_F_INVOICEAMOUNTAndF_invoiceAmount_TH '{0}','{1}','{2}','{3}'
",FID,FENTRYID,F_INVOICEQTY,F_F_INVOICEAMOUNT);
DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null);
}
//根据获取的销售订单FID和FentryId更新开票数量和开票金额(当销售订单的累计核销金额>价税合计本位币后)
public static void FalseUpSal_OrderKPJEAndKPSL(Context ctx, string FID, string FENTRYID, string F_INVOICEQTY, string F_F_INVOICEAMOUNT)
{
string sql = string.Format(@"/*dialect*/
EXEC FalseUpdateSal_OrderF_INVOICEQTYAndF_F_INVOICEAMOUNTAndF_invoiceAmount_TH '{0}','{1}','{2}','{3}'
", FID, FENTRYID, F_INVOICEQTY, F_F_INVOICEAMOUNT);
DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null);
}
//根据查询销售订单FID查询销售订单累计核销金额和价税合计本位币
public static DynamicObjectCollection GetSal_Order(Context ctx,string FID)
{
string sql = string.Format(@"
SELECT
A.FBILLNO AS '',
B.FBILLALLAMOUNT_LC AS '',
A.F_INVOICEAMOUNT AS ''
FROM T_SAL_ORDER A
INNER JOIN T_SAL_ORDERFIN B ON A.FID = B.FID
WHERE A.FID = '{0}'
AND ABS(A.F_invoiceAmount) > ABS(B.FBILLALLAMOUNT_LC)
", FID);
return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null);
}
//根据蓝字发票查询销售订单的FID和FENTRYID开票数量和开票金额
public static DynamicObjectCollection GetLZFPSal_ORDERFidAndFentryid(Context ctx, string FID)
{
string sql = string.Format(@"/*dialect*/
EXEC GetIV_SALESICSal_OrderFID_GZTH '{0}'
", FID);
DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null);
//查询表并且返回表的数据
string getSql = string.Format(@"/*dialect*/
SELECT * FROM GZTH_AuditSal_OrderFP
");
return DBServiceHelper.ExecuteDynamicObject(ctx, getSql.ToString(), null, null, CommandType.Text, null);
}
}
}

View File

@ -0,0 +1,101 @@
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.Metadata.ControlElement;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GZ_LTHPilot_ORDER.IV_SALESIC
{
[Description("服务插件:发票审核时,反写销售订单累计开票金额字段"), HotUpdate]
public class AuditS_Order : AbstractOperationServicePlugIn
{
public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e)
{
base.BeforeExecuteOperationTransaction(e);
foreach (var Row in e.SelectedRows)
{
var Billobj = Row.DataEntity;
//先查询是否由蓝票下推生成的红票
var GetLpFids = SqlManage.SqlManage.GetBuleFpFID(this.Context, Convert.ToString(Billobj["Id"]));
if (GetLpFids.Count > 0)
{
//循环遍历蓝字发票FID,执行蓝字发票的查询存储过程
foreach (var GetLpFid in GetLpFids) {
var Ordersqls = SqlManage.SqlManage.GetHZFPSal_ORDERFidAndFentryid(this.Context, Convert.ToString(GetLpFid["蓝字发票FID"]));
if (Ordersqls.Count > 0)
{
foreach (var Ordersql in Ordersqls)
{
//根据销售订单FID和销售订单FENTRYID更新源销售订单的开票数量和开票金额(明细)
SqlManage.SqlManage.UpSal_OrderKPJEAndKPSL(this.Context, Convert.ToString(Ordersql["销售订单FID"]),
Convert.ToString(Ordersql["销售订单FENTRYID"]), Convert.ToString(Ordersql["开票数量"]),
Convert.ToString(Ordersql["开票金额"]));
//判断更新后的累计核销金额是否大于销售订单的价税合计本位币
var dynamics = SqlManage.SqlManage.GetSal_Order(this.Context, Convert.ToString(Ordersql["销售订单FID"]));
if (dynamics.Count > 0)
{
//当累计开票金额>订单的价税合计时,溯源更新订单的开票数量和开票金额
SqlManage.SqlManage.FalseUpSal_OrderKPJEAndKPSL(this.Context, Convert.ToString(Ordersql["销售订单FID"]),
Convert.ToString(Ordersql["销售订单FENTRYID"]), Convert.ToString(Ordersql["开票数量"]),
Convert.ToString(Ordersql["开票金额"]));
foreach (var dynamic in dynamics)
{
e.Cancel = true;
var ErrorMessge = string.Format(@"源单销售订单编号:{0},的价税合计为{1},目前开票金额反写回
{2}", Convert.ToString(dynamic[""])
, Convert.ToString(dynamic["价税合计"]), Convert.ToString(dynamic["累计开票金额"]));
throw new Exception(
ErrorMessge.ToString()
);
}
}
}
}
break;
}
}
//当发票为蓝字发票或非蓝字发票下推生成的红字发票时
else
{
var LZOrders = SqlManage.SqlManage.GetLZFPSal_ORDERFidAndFentryid(this.Context, Convert.ToString(Billobj["Id"]));
if (LZOrders.Count > 0)
{
foreach (var LZOrder in LZOrders)
{
//根据销售订单FID和销售订单的FENTRYID更新源销售订单的开票数量和开票金额(明细)
SqlManage.SqlManage.UpSal_OrderKPJEAndKPSL(this.Context, Convert.ToString(LZOrder["销售订单FID"]),
Convert.ToString(LZOrder["销售订单FENTRYID"]), Convert.ToString(LZOrder["开票数量"]),
Convert.ToString(LZOrder["开票金额"]));
//判断更新后的累计核销金额是否大于销售订单的价税合计本位币
var dynamics = SqlManage.SqlManage.GetSal_Order(this.Context, Convert.ToString(LZOrder["销售订单FID"]));
if (dynamics.Count > 0)
{
//当累计开票金额>订单的价税合计时,溯源更新订单的开票数量和开票金额
SqlManage.SqlManage.FalseUpSal_OrderKPJEAndKPSL(this.Context, Convert.ToString(LZOrder["销售订单FID"]),
Convert.ToString(LZOrder["销售订单FENTRYID"]), Convert.ToString(LZOrder["开票数量"]),
Convert.ToString(LZOrder["开票金额"]));
foreach (var dynamic in dynamics)
{
e.Cancel = true;
var ErrorMessge = string.Format(@"源单销售订单编号:{0},的价税合计为{1},目前开票金额反写回
{2}", Convert.ToString(dynamic[""])
, Convert.ToString(dynamic["价税合计"]), Convert.ToString(dynamic["累计开票金额"]));
throw new Exception(
ErrorMessge.ToString()
);
}
}
}
}
}
}
}
}
}

View File

@ -0,0 +1,62 @@
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GZ_LTHPilot_ORDER.T_IV_SALESIC
{
[Description("服务插件:发票反审核时,溯源销售订单累计开票金额字段"), HotUpdate]
public class UnAuditS_Order : AbstractOperationServicePlugIn
{
public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e)
{
base.BeforeExecuteOperationTransaction(e);
foreach (var Row in e.SelectedRows)
{
var Billobj = Row.DataEntity;
//先查询是否由蓝票下推生成的红票
var GetLpFids = SqlManage.SqlManage.GetBuleFpFID(this.Context, Convert.ToString(Billobj["Id"]));
if (GetLpFids.Count > 0)
{
//循环遍历蓝字发票FID,执行蓝字发票的查询存储过程
foreach (var GetLpFid in GetLpFids)
{
var Ordersqls = SqlManage.SqlManage.GetHZFPSal_ORDERFidAndFentryid(this.Context, Convert.ToString(GetLpFid["蓝字发票FID"]));
if (Ordersqls.Count > 0)
{
foreach (var Ordersql in Ordersqls)
{
//反审核,溯源审核的操作
SqlManage.SqlManage.FalseUpSal_OrderKPJEAndKPSL(this.Context, Convert.ToString(Ordersql["销售订单FID"]),
Convert.ToString(Ordersql["销售订单FENTRYID"]), Convert.ToString(Ordersql["开票数量"]),
Convert.ToString(Ordersql["开票金额"]));
}
}
break;
}
}
//当发票为蓝字发票或非蓝字发票下推生成的红字发票时
else
{
var LZOrders = SqlManage.SqlManage.GetLZFPSal_ORDERFidAndFentryid(this.Context, Convert.ToString(Billobj["Id"]));
if (LZOrders.Count > 0)
{
foreach (var LZOrder in LZOrders)
{
//反审核,溯源审核的操作
SqlManage.SqlManage.FalseUpSal_OrderKPJEAndKPSL(this.Context, Convert.ToString(LZOrder["销售订单FID"]),
Convert.ToString(LZOrder["销售订单FENTRYID"]), Convert.ToString(LZOrder["开票数量"]),
Convert.ToString(LZOrder["开票金额"]));
}
}
}
}
}
}
}

Binary file not shown.

Binary file not shown.