diff --git a/Pilot_KD_Parino/Pilot_KD_Parino.csproj b/Pilot_KD_Parino/Pilot_KD_Parino.csproj
index c096313..9026a19 100644
--- a/Pilot_KD_Parino/Pilot_KD_Parino.csproj
+++ b/Pilot_KD_Parino/Pilot_KD_Parino.csproj
@@ -340,6 +340,7 @@
+
diff --git a/Pilot_KD_Parino/QPHY_AutoWrireRecord/FUpdateAmount.cs b/Pilot_KD_Parino/QPHY_AutoWrireRecord/FUpdateAmount.cs
index b5bcb8b..fd7b5d8 100644
--- a/Pilot_KD_Parino/QPHY_AutoWrireRecord/FUpdateAmount.cs
+++ b/Pilot_KD_Parino/QPHY_AutoWrireRecord/FUpdateAmount.cs
@@ -50,7 +50,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrireRecord
T_SAL_ORDERPLAN B
on A.FID = B.FID
Where A.FBILLNO = '{0}'
- Order by F_ORDER", item["FBILLNO2"]);
+ Order by F_ORDER desc ,FENTRYID desc", item["FBILLNO2"]);
var sql2List = DBUtils.ExecuteDynamicObject(Context, sql2);
//如果只有一个直接赋值
@@ -68,13 +68,15 @@ namespace Pilot_KD_Parino.QPHY_AutoWrireRecord
//{
//判断核销金额是否大于按照排序对冲金额
decimal FRECADVANCEAMOUNT = Convert.ToDecimal(sql2List[i]["FRECADVANCEAMOUNT"]);
- if (FALLAMOUNT > 0)
+ decimal F_MBBA_Decimal_uky=Convert.ToDecimal(sql2List[i]["F_MBBA_Decimal_uky"]);
+ if (FALLAMOUNT > 0 && F_MBBA_Decimal_uky > 0)
{
decimal fAmount = 0;
+
//判断是否整条对冲
- if (FALLAMOUNT - FRECADVANCEAMOUNT >= 0)
+ if (FALLAMOUNT - F_MBBA_Decimal_uky >= 0)
{
- fAmount = FRECADVANCEAMOUNT;
+ fAmount = F_MBBA_Decimal_uky;
}
else
{
@@ -82,8 +84,9 @@ namespace Pilot_KD_Parino.QPHY_AutoWrireRecord
}
string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky = ISNULL(F_MBBA_Decimal_uky,0)-{0} Where FENTRYID = {1};", fAmount, sql2List[i]["FENTRYID"]);
DBUtils.ExecuteDynamicObject(Context, sql3);
+ FALLAMOUNT = FALLAMOUNT - fAmount;
}
- FALLAMOUNT -= FRECADVANCEAMOUNT;
+
//}
}
}
diff --git a/Pilot_KD_Parino/QPHY_AutoWrireRecord/UpdateAmount.cs b/Pilot_KD_Parino/QPHY_AutoWrireRecord/UpdateAmount.cs
index 3831a19..8b4c7f8 100644
--- a/Pilot_KD_Parino/QPHY_AutoWrireRecord/UpdateAmount.cs
+++ b/Pilot_KD_Parino/QPHY_AutoWrireRecord/UpdateAmount.cs
@@ -40,7 +40,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrireRecord
T_SAL_ORDERPLAN B
on A.FID = B.FID
Where A.FBILLNO = '{0}'
- Order by F_ORDER", item["FBILLNO2"]);
+ Order by F_ORDER,FENTRYID", item["FBILLNO2"]);
var sql2List = DBUtils.ExecuteDynamicObject(Context, sql2);
//如果只有一个直接赋值
@@ -56,24 +56,27 @@ namespace Pilot_KD_Parino.QPHY_AutoWrireRecord
//判断核销顺序是否为空
//if (!string.IsNullOrWhiteSpace(sql2List[i]["F_ORDER"]?.ToString()))
//{
- //判断核销金额是否大于按照排序对冲金额
- decimal FRECADVANCEAMOUNT = Convert.ToDecimal(sql2List[i]["FRECADVANCEAMOUNT"]);
- if (FALLAMOUNT > 0)
+ //判断核销金额是否大于按照排序对冲金额
+ decimal FRECADVANCEAMOUNT = Convert.ToDecimal(sql2List[i]["FRECADVANCEAMOUNT"]);
+ decimal F_MBBA_Decimal_uky = Convert.ToDecimal(sql2List[i]["F_MBBA_Decimal_uky"]);
+ if (FALLAMOUNT > 0 && F_MBBA_Decimal_uky < FRECADVANCEAMOUNT)
+ {
+ decimal fAmount = 0;
+ decimal chazhi = FRECADVANCEAMOUNT- F_MBBA_Decimal_uky;
+ //判断是否整条对冲
+ if (FALLAMOUNT - chazhi >= 0)
{
- decimal fAmount = 0;
- //判断是否整条对冲
- if (FALLAMOUNT - FRECADVANCEAMOUNT >= 0)
- {
- fAmount = FRECADVANCEAMOUNT;
- }
- else
- {
- fAmount = FALLAMOUNT;
- }
- string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky = ISNULL(F_MBBA_Decimal_uky,0)+{0} Where FENTRYID = '{1}';", fAmount, sql2List[i]["FENTRYID"]);
- DBUtils.ExecuteDynamicObject(Context, sql3);
+ fAmount = chazhi;
}
- FALLAMOUNT -= FRECADVANCEAMOUNT;
+ else
+ {
+ fAmount = FALLAMOUNT;
+ }
+ string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky = ISNULL(F_MBBA_Decimal_uky,0)+{0} Where FENTRYID = '{1}';", fAmount, sql2List[i]["FENTRYID"]);
+ DBUtils.ExecuteDynamicObject(Context, sql3);
+ FALLAMOUNT = FALLAMOUNT- fAmount;
+ }
+
//}
}
}
diff --git a/Pilot_KD_Parino/VRYF_FHTZDHXJL/FUpdateAmount.cs b/Pilot_KD_Parino/VRYF_FHTZDHXJL/FUpdateAmount.cs
new file mode 100644
index 0000000..681850b
--- /dev/null
+++ b/Pilot_KD_Parino/VRYF_FHTZDHXJL/FUpdateAmount.cs
@@ -0,0 +1,99 @@
+using Kingdee.BOS.App.Data;
+using Kingdee.BOS.Core.DynamicForm.PlugIn;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Util;
+using Pilot_KD_Parino.SQL;
+using System;
+using System.ComponentModel;
+using System.Linq;
+
+namespace Pilot_KD_Parino.VRYF_FHTZDHXJL
+{
+ ///
+ /// 核销记录单(发货通知单)--反审核更新核销金额
+ ///
+ [Description("核销记录单(发货通知单)--反审核更新核销金额"), HotUpdate]
+ public class FUpdateAmount : AbstractOperationServicePlugIn
+ {
+ //public override void EndOperationTransaction(EndOperationTransactionArgs e)
+ //{
+ // base.EndOperationTransaction(e);
+ // var fId = e.DataEntitys[0][0]?.ToString();
+ // //获取销售订单核销金额数据
+ // SqlManage.FUpdateSalOrderAmount(this.Context, fId);
+
+ //}
+ public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e)
+ {
+ base.AfterExecuteOperationTransaction(e);
+ foreach (var rows in e.SelectedRows)
+ {
+ var Billobj = rows.DataEntity;
+ //获取销售订单核销金额数据
+ string sql = string.Format(@"/*dialect*/ EXEC FUpdateSalOrderAmount2 {0} ", Convert.ToString(Billobj["Id"]));
+ //执行SQL
+ DBUtils.ExecuteDynamicObject(Context, sql);
+
+ string sql1 = string.Format(@"/*dialect*/Select B.FBILLNO2,B.FALLAMOUNT2,FORGID,FCONTRACTNUMBER From VRYF_t_Cust100015 A
+ JOIN VRYF_t_Cust_Entry100024 B
+ on A.FID = B.FID Where A.FID = '{0}'", Billobj["Id"]);
+
+ var sql1List = DBUtils.ExecuteDynamicObject(Context, sql1);
+
+ foreach (var item in sql1List.ToList())
+ {
+ decimal FALLAMOUNT = 0;
+
+ FALLAMOUNT = Convert.ToDecimal(item["FALLAMOUNT2"]); //要计算的核销金额
+
+ string sql2 = string.Format($@"/*dialect*/Select B.FENTRYID,B.FRECADVANCEAMOUNT,ISNULL(B.F_ORDER,'') as 'F_ORDER' From
+ T_SAL_ORDER A
+ JOIN
+ T_SAL_ORDERPLAN B
+ on A.FID = B.FID
+ Where A.F_contractnumber = '{item["FCONTRACTNUMBER"]}' and A.FSaleOrgId={item["FORGID"]}
+ Order by F_ORDER desc ,FENTRYID desc ");
+
+ var sql2List = DBUtils.ExecuteDynamicObject(Context, sql2);
+ //如果只有一个直接赋值
+ if (sql2List.Count == 1)
+ {
+ string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky =ISNULL(F_MBBA_Decimal_uky,0)- {0} Where FENTRYID = {1};", FALLAMOUNT, sql2List[0]["FENTRYID"]);
+ DBUtils.ExecuteDynamicObject(Context, sql3);
+ }
+ if (sql2List.Count > 1)
+ {
+ for (int i = 0; i < sql2List.Count; i++)
+ {
+ //判断核销顺序是否为空
+ //if (!string.IsNullOrWhiteSpace(sql2List[i]["F_ORDER"]?.ToString()))
+ //{
+ //判断核销金额是否大于按照排序对冲金额
+ decimal FRECADVANCEAMOUNT = Convert.ToDecimal(sql2List[i]["FRECADVANCEAMOUNT"]); //应收款金额
+ decimal F_MBBA_Decimal_uky = Convert.ToDecimal(sql2List[i]["F_MBBA_Decimal_uky"]); //累计核销金额
+ if (FALLAMOUNT > 0 && F_MBBA_Decimal_uky > 0)
+ {
+ decimal fAmount = 0;
+
+ //判断是否整条对冲
+ if (FALLAMOUNT - F_MBBA_Decimal_uky >= 0)
+ {
+ fAmount = F_MBBA_Decimal_uky;
+ }
+ else
+ {
+ fAmount = FALLAMOUNT;
+ }
+ string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky = ISNULL(F_MBBA_Decimal_uky,0)-{0} Where FENTRYID = {1};", fAmount, sql2List[i]["FENTRYID"]);
+ DBUtils.ExecuteDynamicObject(Context, sql3);
+ FALLAMOUNT = FALLAMOUNT - fAmount;
+ }
+
+ //}
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/Pilot_KD_Parino/VRYF_FHTZDHXJL/UpdateAmount.cs b/Pilot_KD_Parino/VRYF_FHTZDHXJL/UpdateAmount.cs
index c9b14eb..65788ac 100644
--- a/Pilot_KD_Parino/VRYF_FHTZDHXJL/UpdateAmount.cs
+++ b/Pilot_KD_Parino/VRYF_FHTZDHXJL/UpdateAmount.cs
@@ -13,7 +13,7 @@ using Kingdee.BOS.App.Data;
namespace Pilot_KD_Parino.VRYF_FHTZDHXJL
{
[HotUpdate]
- [Description("核销记录单(发货通知单)--更新销售订单金额")]
+ [Description("核销记录单(发货通知单)--更新累计核销金额")]
public class UpdateAmount : AbstractOperationServicePlugIn
{
public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e)
@@ -23,9 +23,11 @@ namespace Pilot_KD_Parino.VRYF_FHTZDHXJL
{
var Billobj = rows.DataEntity;
//获取销售订单核销金额数据
- SqlManage.UpdateSalOrderAmount(this.Context, Convert.ToString(Billobj["Id"]));
+ string sql = string.Format(@"/*dialect*/ EXEC UpdateSalOrderAmount2 {0} ", Convert.ToString(Billobj["Id"]));
+ //执行SQL
+ DBUtils.ExecuteDynamicObject(Context, sql);
- string sql1 = string.Format(@"/*dialect*/Select B.FBILLNO2,B.FALLAMOUNT2 From VRYF_t_Cust100015 A
+ string sql1 = string.Format(@"/*dialect*/Select B.FBILLNO2,B.FALLAMOUNT2,FORGID,FCONTRACTNUMBER From VRYF_t_Cust100015 A
JOIN VRYF_t_Cust_Entry100024 B
on A.FID = B.FID Where A.FID = '{0}'", Billobj["Id"]);
@@ -42,7 +44,7 @@ namespace Pilot_KD_Parino.VRYF_FHTZDHXJL
JOIN
T_SAL_ORDERPLAN B
on A.FID = B.FID
- Where A.FDOCUMENTSTATUS = '{item["FDOCUMENTSTATUS"]}' and A.FSaleOrgId={item["FORGID"]}
+ Where A.F_contractnumber = '{item["FCONTRACTNUMBER"]}' and A.FSaleOrgId={item["FORGID"]}
Order by F_ORDER ,FENTRYID");
var sql2List = DBUtils.ExecuteDynamicObject(Context, sql2);
@@ -59,24 +61,27 @@ namespace Pilot_KD_Parino.VRYF_FHTZDHXJL
//判断核销顺序是否为空
//if (!string.IsNullOrWhiteSpace(sql2List[i]["F_ORDER"]?.ToString()))
//{
- //判断核销金额是否大于按照排序对冲金额
- decimal FRECADVANCEAMOUNT = Convert.ToDecimal(sql2List[i]["FRECADVANCEAMOUNT"]);
- if (FALLAMOUNT > 0)
+ //判断核销金额是否大于按照排序对冲金额
+ decimal FRECADVANCEAMOUNT = Convert.ToDecimal(sql2List[i]["FRECADVANCEAMOUNT"]);
+ decimal F_MBBA_Decimal_uky = Convert.ToDecimal(sql2List[i]["F_MBBA_Decimal_uky"]);
+ if (FALLAMOUNT > 0 && F_MBBA_Decimal_uky < FRECADVANCEAMOUNT)
+ {
+ decimal fAmount = 0;
+ decimal chazhi = FRECADVANCEAMOUNT - F_MBBA_Decimal_uky;
+ //判断是否整条对冲
+ if (FALLAMOUNT - chazhi >= 0)
{
- decimal fAmount = 0;
- //判断是否整条对冲
- if (FALLAMOUNT - FRECADVANCEAMOUNT >= 0)
- {
- fAmount = FRECADVANCEAMOUNT;
- }
- else
- {
- fAmount = FALLAMOUNT;
- }
- string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky = '{0}' Where FENTRYID = '{1}';", fAmount, sql2List[i]["FENTRYID"]);
- DBUtils.ExecuteDynamicObject(Context, sql3);
+ fAmount = chazhi;
}
- FALLAMOUNT -= FRECADVANCEAMOUNT;
+ else
+ {
+ fAmount = FALLAMOUNT;
+ }
+ string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky = ISNULL(F_MBBA_Decimal_uky,0)+{0} Where FENTRYID = '{1}';", fAmount, sql2List[i]["FENTRYID"]);
+ DBUtils.ExecuteDynamicObject(Context, sql3);
+ FALLAMOUNT = FALLAMOUNT - fAmount;
+ }
+
//}
}
}
diff --git a/发货通知单的核销记录反审核.sql b/发货通知单的核销记录反审核.sql
new file mode 100644
index 0000000..4517f4d
--- /dev/null
+++ b/发货通知单的核销记录反审核.sql
@@ -0,0 +1,50 @@
+
+ALTER PROC FUpdateSalOrderAmount2
+(
+ @fid NVARCHAR(1000)
+)
+AS
+BEGIN
+
+ DECLARE @F_Amount DECIMAL(18,2)=0,@FBILLNO NVARCHAR(50),@saleOrgId INT,@F_Papercontract NVARCHAR(2000)
+
+ SELECT @F_Amount=ISNULL(SUM(CONVERT(DECIMAL(18,2), FALLAMOUNT2)),0), @FBILLNO=FBILLNO2 FROM VRYF_t_Cust100015 A
+ INNER JOIN VRYF_t_Cust_Entry100024 B ON A.FID = B.FID
+ WHERE a.FID =@FID
+ GROUP BY FBILLNO2
+
+ SELECT @saleOrgId= a.FSALEORGID,@F_Papercontract=F_Papercontract FROM T_SAL_DELIVERYNOTICE a
+ WHERE a.FBILLNO=@FBILLNO
+
+--ķ֪ͨۼƺ
+ UPDATE T_SAL_DELIVERYNOTICE SET F_Amount =ISNULL(F_Amount,0)-@F_Amount
+ WHERE FBILLNO =@FBILLNO ;
+
+ UPDATE dbo.T_SAL_ORDER SET F_AMOUNT=ISNULL(F_AMOUNT,0)-@F_Amount
+ WHERE F_SALEORGID=@saleOrgId AND F_contractnumber=@F_Papercontract
+
+
+ --տۼƺ
+
+ SELECT @F_Amount=ISNULL(SUM(CONVERT(decimal(18,2), FALLAMOUNT3)),0), @FBILLNO=FBILLNO3 FROM VRYF_t_Cust100015 A
+ INNER JOIN VRYF_t_Cust_Entry100025 B ON A.FID = B.FID
+ WHERE a.FID =@FID
+ GROUP BY FBILLNO3
+
+ UPDATE T_AR_RECEIVEBILL SET F_Amount=ISNULL(F_Amount,0)-@F_Amount
+ WHERE FBILLNO =@FBILLNO ;
+
+end
+
+
+
+--SKD00000003
+ --SELECT FBILLNO3,SUM(CONVERT(decimal(18,2), FALLAMOUNT3)) AS '' FROM T_AutoWrireRecord A
+ -- INNER JOIN T_AutoWrireRecordEntry2 B ON A.FID = B.FID
+ -- WHERE A.FDOCUMENTSTATUS = 'C'
+ -- GROUP BY B.FBILLNO3
+
+
+ go
+ --Select * From T_SAL_ORDER Where FBILLNO = 'PL-XSDD20250200007'
+ --Update T_SAL_ORDER Set FDOCUMENTSTATUS = 'D' Where FBILLNO = 'PL-XSDD20250200007'
\ No newline at end of file
diff --git a/发货通知单的核销记录审核.sql b/发货通知单的核销记录审核.sql
new file mode 100644
index 0000000..f7af3ad
--- /dev/null
+++ b/发货通知单的核销记录审核.sql
@@ -0,0 +1,50 @@
+
+ALTER proc UpdateSalOrderAmount2
+(
+ @fid nvarchar(1000)
+)
+as
+begin
+
+ DECLARE @F_Amount DECIMAL(18,2)=0,@FBILLNO NVARCHAR(50),@saleOrgId INT,@F_Papercontract NVARCHAR(2000)
+
+ SELECT @F_Amount=ISNULL(SUM(CONVERT(decimal(18,2), FALLAMOUNT2)),0), @FBILLNO=FBILLNO2 FROM VRYF_t_Cust100015 A
+ INNER JOIN VRYF_t_Cust_Entry100024 B ON A.FID = B.FID
+ WHERE a.FID =@FID
+ GROUP BY FBILLNO2
+
+ SELECT @saleOrgId= a.FSALEORGID,@F_Papercontract=F_Papercontract FROM T_SAL_DELIVERYNOTICE a
+ WHERE a.FBILLNO=@FBILLNO
+
+--ķ֪ͨۼƺ
+ UPDATE T_SAL_DELIVERYNOTICE SET F_Amount =ISNULL(F_Amount,0)+@F_Amount
+ WHERE FBILLNO =@FBILLNO ;
+
+ UPDATE dbo.T_SAL_ORDER SET F_AMOUNT=ISNULL(F_AMOUNT,0)+@F_Amount
+ WHERE F_SALEORGID=@saleOrgId AND F_contractnumber=@F_Papercontract
+
+
+ --տۼƺ
+
+ SELECT @F_Amount=ISNULL(SUM(CONVERT(decimal(18,2), FALLAMOUNT3)),0), @FBILLNO=FBILLNO3 FROM VRYF_t_Cust100015 A
+ INNER JOIN VRYF_t_Cust_Entry100025 B ON A.FID = B.FID
+ WHERE a.FID =@FID
+ GROUP BY FBILLNO3
+
+ UPDATE T_AR_RECEIVEBILL SET F_Amount=ISNULL(F_Amount,0)+@F_Amount
+ WHERE FBILLNO =@FBILLNO ;
+
+end
+
+
+
+--SKD00000003
+ --SELECT FBILLNO3,SUM(CONVERT(decimal(18,2), FALLAMOUNT3)) AS '' FROM T_AutoWrireRecord A
+ -- INNER JOIN T_AutoWrireRecordEntry2 B ON A.FID = B.FID
+ -- WHERE A.FDOCUMENTSTATUS = 'C'
+ -- GROUP BY B.FBILLNO3
+
+
+ go
+ --Select * From T_SAL_ORDER Where FBILLNO = 'PL-XSDD20250200007'
+ --Update T_SAL_ORDER Set FDOCUMENTSTATUS = 'D' Where FBILLNO = 'PL-XSDD20250200007'
\ No newline at end of file