diff --git a/Pilot_KD_Parino/Common/CombinaClass.cs b/Pilot_KD_Parino/Common/CombinaClass.cs
index 49199dc..fab563f 100644
--- a/Pilot_KD_Parino/Common/CombinaClass.cs
+++ b/Pilot_KD_Parino/Common/CombinaClass.cs
@@ -127,22 +127,22 @@ namespace Pilot_KD_Parino.Common
public string FISHX { get; set; }
///
- /// 金额
+ /// 订单含税金额(本位币)
///
public double FALLAMOUNT { get; set; }
///
- /// 已核销金额
+ /// 已核销金额(原币)
///
public double FYAMOUNT { get; set; }
///
- /// 待核销金额
+ /// 待核销金额(原币)
///
public double FDAMOUNT { get; set; }
///
- /// 金额(原币)
+ /// 订单含税金额(原币)
///
public double FALLAMOUNTY { get; set; }
@@ -210,5 +210,20 @@ namespace Pilot_KD_Parino.Common
/// 最近30天开票金额
///
public double FInvoiceAmount30Days { get; set; }
+
+ ///
+ /// 运杂费(原币)
+ ///
+ public double FYunZaFei_YuanBi { get; set; }
+
+ ///
+ /// 汇率
+ ///
+ public double FHuiLv { get; set; }
+
+ ///
+ /// 结算币别
+ ///
+ public string FBiBie { get; set; }
}
}
diff --git a/Pilot_KD_Parino/QPHY_AutoWrire/Bill5.cs b/Pilot_KD_Parino/QPHY_AutoWrire/Bill5.cs
index de6645e..52853eb 100644
--- a/Pilot_KD_Parino/QPHY_AutoWrire/Bill5.cs
+++ b/Pilot_KD_Parino/QPHY_AutoWrire/Bill5.cs
@@ -14,9 +14,11 @@ using Kingdee.BOS.Core.List;
using Kingdee.BOS.Core.Msg;
using Kingdee.BOS.Core.Report.PlugIn.Args;
using Kingdee.BOS.JSON;
+using Kingdee.BOS.Log;
using Kingdee.BOS.Orm;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Orm.Exceptions;
+using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Util;
using Newtonsoft.Json;
using NPOI.SS.Formula.Functions;
@@ -348,7 +350,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
this.View.Model.SetValue("FBILLNO", SaleBILLLIS[i].FBIllNO, i);
//日期
this.View.Model.SetValue("FDate", SaleBILLLIS[i].FDate, i);
- //金额
+ //订单含税金额(本位币)
this.View.Model.SetValue("F_MBBA_Decimal_c1c", SaleBILLLIS[i].FALLAMOUNT, i);
//类型
this.View.Model.SetValue("FType", SaleBILLLIS[i].FType, i);
@@ -356,9 +358,9 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
this.View.Model.SetValue("FCONTRACTNUMBER", SaleBILLLIS[i].FCONTRACTNUMBER, i);
//客户名称
this.View.Model.SetValue("FClient", SaleBILLLIS[i].FClient, i);
- //已核销金额
+ //已核销金额(原币)
this.View.Model.SetValue("F_MBBA_Decimal_vb1", SaleBILLLIS[i].FYAMOUNT, i);
- //待核销金额
+ //待核销金额(原币)
this.View.Model.SetValue("F_MBBA_Decimal_emq", SaleBILLLIS[i].FDAMOUNT, i);
//单据编号(收款单)
this.View.Model.SetValue("FSKBILLNO", SaleBILLLIS[i].FSKBIllNO, i);
@@ -427,13 +429,18 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
FWeiYi = item["FWeiYi"]?.ToString(),
FaHuoAmount30Days = Convert.ToDouble( item["FaHuoAmount30Days"].ToString()),
FInvoiceAmount30Days= Convert.ToDouble(item["FInvoiceAmount30Days"].ToString()),
+ FHuiLv = Convert.ToDouble(item["FHuiLv"]),
+ FBiBie = Convert.ToString(item["FBiBie"]),
+ FYunZaFei_YuanBi = Convert.ToDouble(item["FYunZaFei_YuanBi"]),
+ FALLAMOUNTY = Convert.ToDouble(item["FJiaShuiHeJi_YuanBi"]),
}).ToList();
var SaleBILLLISNew = SaleBILLLIS.Where(a => a.FISHX != "已核销配对").ToList();
var ReceiveBILLLIST2 = new List();
//获取收款单单据体数据
DynamicObjectCollection FEntity2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection;
-
+ //string sdsad = JsonConvert.SerializeObject(FEntity2);
+ //Logger.Error("", "442"+ sdsad, new Exception());
ReceiveBILLLIST2 = FEntity2.Select(item => new CombinaClass
{
FBIllNO = item["FBILLNO2"]?.ToString(),
@@ -447,8 +454,13 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
FSalesman = Convert.ToInt32(item["FSalesman2_Id"]),
FCONTRACTNUMBER = item["FCONTRACTNUMBER2"]?.ToString(),
FRow = Convert.ToInt32(item["Seq"]) - 1,
- F_RowNew = Convert.ToInt32(item["F_RowNew"])
+ F_RowNew = Convert.ToInt32(item["F_RowNew"]),
+ FHuiLv = Convert.ToDouble(item["FHuiLv2"]),
+ FBiBie = Convert.ToString(item["FBiBie2"]),
+ FALLAMOUNTY = Convert.ToDouble(item["FShouKuanJinE_YuanBi"]),
}).ToList();
+
+ //Logger.Error("","462",new Exception());
//重置并只取父级树形数据
ReceiveBILLLIST = new List();
ReceiveBILLLIST = ReceiveBILLLIST2.Where(a => a.F_RowNew == 1 && a.FISHX != "已核销配对").OrderBy(t => t.FClient).ThenBy(t => t.FCONTRACTNUMBER).ThenBy(t => t.FDate).ToList();
@@ -467,10 +479,10 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
Dictionary shouKuanDetail = new Dictionary();
//先挑1张收款单对应一张销售订单
- //1、收款单的待核销金额与订单的待核销金额
+ //1、收款单的待核销金额与订单的待核销金额, 2025-06-09 增加结算币别也要相等
var oneToOneTemp = (from q in SaleBILLLIS2Sal
- join u in ReceiveBILLLIST on new { q.FClient, q.FDAMOUNT } equals new { u.FClient, u.FDAMOUNT }
- select new { q.FClient, q.FBIllNO, q.FCONTRACTNUMBER, u.FDAMOUNT, UFbillNo = u.FBIllNO }).ToList();
+ join u in ReceiveBILLLIST on new { q.FClient, q.FDAMOUNT,q.FBiBie } equals new { u.FClient, u.FDAMOUNT,u.FBiBie }
+ select new { q.FClient, q.FBIllNO, q.FCONTRACTNUMBER, u.FDAMOUNT, UFbillNo = u.FBIllNO, u.FBiBie }).ToList();
//var dasdsas = oneToOneTemp.Where(h => h.FBIllNO == "PL-XSDD20250400471").FirstOrDefault();
var saleList1 = oneToOneTemp.Select(t => t.FBIllNO).Distinct().ToList();
var ReceiveList1 = oneToOneTemp.Select(t => t.UFbillNo).Distinct().ToList();
@@ -636,13 +648,13 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
if (SourceType == 0) //只有销售单有这两种匹配逻辑
{
- //3、收款单的待核销金额与订单的待最近30天开票金额(客户说只有医院客户,但是代码不做客户名称判断)
+ //3、收款单的待核销金额与订单的待最近30天开票金额(客户说只有医院客户,但是代码不做客户名称判断), 2025-06-09 增加结算币别也要相等
var SaleBILLLIS2Sa333 = SaleBILLLISNew.Where(t => t.FISHX != "已核销配对" && t.FDAMOUNT > 0).OrderBy(t => t.FClient).ThenByDescending(t => t.FDate).ToList();
ReceiveBILLLIST = ReceiveBILLLIST2.Where(a => a.F_RowNew == 1 && a.FISHX != "已核销配对" && a.FDAMOUNT > 0).OrderBy(t => t.FClient).ThenByDescending(t => t.FDate).ToList();
var oneToOneTemp3 = (from q in SaleBILLLIS2Sa333
- join u in ReceiveBILLLIST on new { q.FClient, FDAMOUNT = q.FInvoiceAmount30Days } equals new { u.FClient, u.FDAMOUNT }
- select new { q.FClient, q.FBIllNO, q.FCONTRACTNUMBER, u.FDAMOUNT, UFbillNo = u.FBIllNO }).ToList();
+ join u in ReceiveBILLLIST on new { q.FClient, FDAMOUNT = q.FInvoiceAmount30Days ,q.FBiBie} equals new { u.FClient, u.FDAMOUNT,u.FBiBie }
+ select new { q.FClient, q.FBIllNO, q.FCONTRACTNUMBER, u.FDAMOUNT, UFbillNo = u.FBIllNO, u.FBiBie }).ToList();
//var dasdsas = oneToOneTemp.Where(h => h.FBIllNO == "PL-XSDD20250400471").FirstOrDefault();
var saleList33 = oneToOneTemp3.Select(t => t.FBIllNO).Distinct().ToList();
var ReceiveList33 = oneToOneTemp3.Select(t => t.UFbillNo).Distinct().ToList();
@@ -727,7 +739,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
ReceiveBILLLIST.ForEach(t =>
{
- var tempList = SaleBILLLIS2Sa2.Where(h => h.FClient == t.FClient && h.FISHX != "已核销配对" && t.FDAMOUNT > 0).OrderByDescending(h => h.FDate).ToList();
+ var tempList = SaleBILLLIS2Sa2.Where(h =>h.FBiBie==t.FBiBie && h.FClient == t.FClient && h.FISHX != "已核销配对" && t.FDAMOUNT > 0).OrderByDescending(h => h.FDate).ToList();
var FDAMOUNT = t.FDAMOUNT;
List heTongList = new List();
@@ -927,7 +939,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
{
this.View.Model.SetValue("FDate2", DateTime.Now.AddDays(-1 * Convert.ToInt32(tempList2[i].FDate)).ToString("yyyy-MM-dd"), Rowindex + i);
}
- this.View.Model.SetValue("F_MBBA_Decimal_imu", tempList2[i].FALLAMOUNT, Rowindex + i);
+ this.View.Model.SetValue("F_MBBA_Decimal_imu", tempList2[i].FALLAMOUNT+ tempList2[i].FYunZaFei_YuanBi * tempList2[i].FHuiLv, Rowindex + i);
this.View.Model.SetValue("FClient2", tempList2[i].FClient, Rowindex + i);
this.View.Model.SetValue("F_RowNew", 2, Rowindex + i);
this.View.Model.SetValue("FCreated2", tempList2[i].FCreated, Rowindex );
@@ -938,6 +950,12 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
this.View.Model.SetValue("F_BenCi", benci, Rowindex + i);
this.View.Model.SetValue("F_MBBA_Decimal_3iy", tempList2[i].FYAMOUNT, Rowindex + i );
this.View.Model.SetValue("F_ISHX", false, Rowindex + i);
+
+ this.View.Model.SetValue("FBiBie2", tempList2[i].FBiBie, Rowindex + i);
+ this.View.Model.SetValue("FHuiLv2", tempList2[i].FHuiLv, Rowindex + i);
+ this.View.Model.SetValue("FShouKuanJinE_YuanBi", tempList2[i].FALLAMOUNTY + tempList2[i].FYunZaFei_YuanBi, Rowindex + i);
+ //Logger.Error("", "956", new Exception());
+
}
@@ -1583,6 +1601,10 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
FInvoiceAmount = Convert.ToDecimal(item["FInvoiceAmount"]),
FaHuoAmount30Days = Convert.ToDouble(item["FaHuoAmount30Days"]),
FInvoiceAmount30Days = Convert.ToDouble(item["FInvoiceAmount30Days"]),
+ FHuiLv= Convert.ToDouble(item["FHuiLv"]),
+ FBiBie = Convert.ToString(item["FBiBie"]),
+ FYunZaFei_YuanBi = Convert.ToDouble(item["F_EXPENSES"]),
+ FALLAMOUNTY= Convert.ToDouble(item["FALLAMOUNTY"]),
}).ToList();
@@ -1600,6 +1622,9 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
FSalesman = Convert.ToInt32(item["FSALEERID"]),
F_RowNew = 1,
BenCi = 0,
+ FHuiLv = Convert.ToDouble(item["FHuiLv"]),
+ FBiBie = Convert.ToString(item["FBiBie"]),
+ FALLAMOUNTY = Convert.ToDouble(item["FALLAMOUNTY"]),
}).ToList();
var kehu = ReceiveBILLLIST.Select(t => t.FClient).Distinct().ToList();
@@ -1637,6 +1662,10 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
this.View.Model.SetValue("FInvoiceAmount", SaleBILLLIS2[i].FInvoiceAmount, i);
this.View.Model.SetValue("FInvoiceAmount30Days", SaleBILLLIS2[i].FInvoiceAmount30Days, i);
this.View.Model.SetValue("FaHuoAmount30Days", SaleBILLLIS2[i].FaHuoAmount30Days, i);
+ this.View.Model.SetValue("FBiBie", SaleBILLLIS2[i].FBiBie, i);
+ this.View.Model.SetValue("FHuiLv", SaleBILLLIS2[i].FHuiLv, i);
+ this.View.Model.SetValue("FYunZaFei_YuanBi", SaleBILLLIS2[i].FYunZaFei_YuanBi, i);
+ this.View.Model.SetValue("FJiaShuiHeJi_YuanBi", SaleBILLLIS2[i].FALLAMOUNTY, i);
//FaHuoAmount30Days = Convert.ToDouble(item["FaHuoAmount30Days"]),
//FInvoiceAmount30Days = Convert.ToDouble(item["FInvoiceAmount30Days"]),
@@ -1666,6 +1695,11 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
this.View.Model.SetValue("F_RowNew", ReceiveBILLLIST[i].F_RowNew, RowindexNew);
this.View.Model.SetValue("F_ISHX", false, RowindexNew);
+ this.View.Model.SetValue("FBiBie2", ReceiveBILLLIST[i].FBiBie, i);
+ this.View.Model.SetValue("FHuiLv2", ReceiveBILLLIST[i].FHuiLv, i);
+ this.View.Model.SetValue("FYunZaFei_YuanBi2", ReceiveBILLLIST[i].FYunZaFei_YuanBi, RowindexNew);
+ this.View.Model.SetValue("FShouKuanJinE_YuanBi", ReceiveBILLLIST[i].FALLAMOUNTY, RowindexNew);
+ //Logger.Error("", "1701", new Exception());
}
this.View.UpdateView("FEntity2");
}
diff --git a/Pilot_KD_Parino/QPHY_AutoWrireRecord/FUpdateAmount.cs b/Pilot_KD_Parino/QPHY_AutoWrireRecord/FUpdateAmount.cs
index 45e23c0..bfbc16b 100644
--- a/Pilot_KD_Parino/QPHY_AutoWrireRecord/FUpdateAmount.cs
+++ b/Pilot_KD_Parino/QPHY_AutoWrireRecord/FUpdateAmount.cs
@@ -6,6 +6,7 @@ using Pilot_KD_Parino.SQL;
using System;
using System.ComponentModel;
using System.Linq;
+using System.Threading;
namespace Pilot_KD_Parino.QPHY_AutoWrireRecord
{
@@ -48,7 +49,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrireRecord
FALLAMOUNT = Convert.ToDecimal(item["FALLAMOUNT2"]);
- string sql2 = string.Format(@"/*dialect*/Select B.FENTRYID,B.FRECADVANCEAMOUNT,ISNULL(B.F_ORDER,'') as 'F_ORDER' From
+ string sql2 = string.Format(@"/*dialect*/Select B.FENTRYID,B.FRECADVANCEAMOUNT,ISNULL(B.F_ORDER,'') as 'F_ORDER',a.FID From
T_SAL_ORDER A
JOIN
T_SAL_ORDERPLAN B
@@ -57,43 +58,52 @@ namespace Pilot_KD_Parino.QPHY_AutoWrireRecord
Order by F_ORDER desc ,FENTRYID desc", item["FBILLNO2"]);
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;
- }
-
- //}
- }
- }
+ var fidList = sql2List.Select(t => t["FID"].ToString()).ToList().Distinct().ToList();
+ fidList.ForEach(t =>
+ {
+ string sql3 = $@"exec PR_ResetSALORDERPLAN_MBBA_yuyubo {t};";
+ DBUtils.ExecuteDynamicObject(Context, sql3);
+ Thread.Sleep(300);
+ });
+
+ ////如果只有一个直接赋值
+ //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/QPHY_AutoWrireRecord/UpdateAmount.cs b/Pilot_KD_Parino/QPHY_AutoWrireRecord/UpdateAmount.cs
index 8b4c7f8..bc118c4 100644
--- a/Pilot_KD_Parino/QPHY_AutoWrireRecord/UpdateAmount.cs
+++ b/Pilot_KD_Parino/QPHY_AutoWrireRecord/UpdateAmount.cs
@@ -6,6 +6,7 @@ using Pilot_KD_Parino.SQL;
using System;
using System.ComponentModel;
using System.Linq;
+using System.Threading;
namespace Pilot_KD_Parino.QPHY_AutoWrireRecord
{
@@ -34,7 +35,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrireRecord
FALLAMOUNT = Convert.ToDecimal(item["FALLAMOUNT2"]);
- string sql2 = string.Format(@"/*dialect*/Select B.FENTRYID,B.FRECADVANCEAMOUNT,ISNULL(B.F_ORDER,'') as 'F_ORDER' From
+ string sql2 = string.Format(@"/*dialect*/Select B.FENTRYID,B.FRECADVANCEAMOUNT,ISNULL(B.F_ORDER,'') as 'F_ORDER' ,a.FID From
T_SAL_ORDER A
JOIN
T_SAL_ORDERPLAN B
@@ -43,43 +44,50 @@ namespace Pilot_KD_Parino.QPHY_AutoWrireRecord
Order by F_ORDER,FENTRYID", item["FBILLNO2"]);
var sql2List = DBUtils.ExecuteDynamicObject(Context, sql2);
- //如果只有一个直接赋值
- if (sql2List.Count == 1)
+ var fidList = sql2List.Select(t => t["FID"].ToString()).ToList().Distinct().ToList();
+ fidList.ForEach(t =>
{
- 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"]);
+ string sql3 = $@"exec PR_ResetSALORDERPLAN_MBBA_yuyubo {t};";
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 < FRECADVANCEAMOUNT)
- {
- decimal fAmount = 0;
- decimal chazhi = FRECADVANCEAMOUNT- F_MBBA_Decimal_uky;
- //判断是否整条对冲
- if (FALLAMOUNT - chazhi >= 0)
- {
- fAmount = chazhi;
- }
- 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;
- }
-
- //}
- }
- }
+ Thread.Sleep(300);
+ });
+ ////如果只有一个直接赋值
+ //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 < FRECADVANCEAMOUNT)
+ // {
+ // decimal fAmount = 0;
+ // decimal chazhi = FRECADVANCEAMOUNT- F_MBBA_Decimal_uky;
+ // //判断是否整条对冲
+ // if (FALLAMOUNT - chazhi >= 0)
+ // {
+ // fAmount = chazhi;
+ // }
+ // 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/SQL/SqlManage_yuyubo.cs b/Pilot_KD_Parino/SQL/SqlManage_yuyubo.cs
index 77732cb..d0a624d 100644
--- a/Pilot_KD_Parino/SQL/SqlManage_yuyubo.cs
+++ b/Pilot_KD_Parino/SQL/SqlManage_yuyubo.cs
@@ -21,7 +21,7 @@ namespace Pilot_KD_Parino.SQL
{
//定义SQL,调用物料视图
string sql = string.Format($@"/*dialect*/
- SELECT A.FID,
+ SELECT A.FID,
A.FSALEERID,
A.FCONTACTUNIT,
A.FREMARK,
@@ -30,15 +30,15 @@ namespace Pilot_KD_Parino.SQL
DATEDIFF(D, A.FDATE, GETDATE()) AS 'FDATE',
A.FRECAMOUNT AS 'FALLAMOUNT',
A.FRECAMOUNTFOR as 'FALLAMOUNTY',
- A.FRECAMOUNT-A.F_AMOUNT as 'FDAMOUNT',
+ A.FRECAMOUNTFOR-A.F_AMOUNT as 'FDAMOUNT',
A.FCURRENCYID as 'FCurr',
- A.FCREATORID as 'FCREATORID'
+ A.FCREATORID as 'FCREATORID',
+ A.FSETTLERATE AS FHuiLv,
+ (SELECT ll.FNAME FROM dbo.T_BD_CURRENCY_L ll WITH(NOLOCK) where ll.FCURRENCYID=A.FSETTLECUR ) FBiBie
FROM T_AR_RECEIVEBILL A
WHERE A.FDOCUMENTSTATUS = 'C'
- AND A.FISINIT != '1'
-
- AND A.FRECAMOUNT != A.F_AMOUNT
- AND A.FRECAMOUNT >= A.F_AMOUNT {where}
+ AND A.FISINIT != '1'
+ AND A.FRECAMOUNTFOR >= A.F_AMOUNT {where}
order by FCONTACTUNIT,A.FID desc ", FORGID);
return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null);
}
@@ -56,7 +56,7 @@ namespace Pilot_KD_Parino.SQL
*
*/
string sql = string.Format($@"/*dialect*/
- SELECT FDAMOUNT2 as FDAMOUNT, * FROM
+ SELECT FDAMOUNT2 as FDAMOUNT, * FROM
(
SELECT A.FID, A.FBusinessType,
A.FSALERID,
@@ -69,7 +69,7 @@ namespace Pilot_KD_Parino.SQL
C.FBILLALLAMOUNT_LC AS 'FALLAMOUNT' ,
C.FBILLALLAMOUNT as 'FALLAMOUNTY',
ISNULL(A.F_AMOUNT,0) as 'FYAMOUNT',
- C.FBILLALLAMOUNT_LC-A.F_AMOUNT as 'FDAMOUNT2',
+ C.FBILLALLAMOUNT+a.F_EXPENSES-A.F_AMOUNT as 'FDAMOUNT2',
C.FSETTLECURRID as 'FCurr',
case when DATEDIFF(MONTH, A.FDATE, GETDATE())<3 then 'True' else 'False' end as 'FIs30' ,
'销售订单' as 'FTYPE',
@@ -79,8 +79,8 @@ namespace Pilot_KD_Parino.SQL
(
SELECT SUM(F_GeneralInvoice) AS '发票总金额' FROM (
SELECT F_PaperNumber, t0.FSALEORGID,
- CASE WHEN F_ORDERCATEGORY ='67283ced82f38d' THEN FAFTERTOTALTAX
- WHEN F_ORDERCATEGORY !='67283ced82f38d' AND F_GENERALINVOICE='Y' THEN 0 ELSE FAFTERTOTALTAX END AS F_GeneralInvoice
+ CASE WHEN F_ORDERCATEGORY ='67283ced82f38d' THEN FAFTERTOTALTAXFOR
+ WHEN F_ORDERCATEGORY !='67283ced82f38d' AND F_GENERALINVOICE='Y' THEN 0 ELSE FAFTERTOTALTAXFOR END AS F_GeneralInvoice
--FAFTERTOTALTAX
FROM T_IV_SALESIC t0 WITH(NOLOCK)
INNER JOIN T_SAL_ORDER aa1 WITH(NOLOCK) ON t0.F_PAPERNUMBER=aa1.F_contractnumber AND t0.FSETTLEORGID=aa1.FSALEORGID
@@ -89,7 +89,8 @@ INNER JOIN T_SAL_ORDER aa1 WITH(NOLOCK) ON t0.F_PAPERNUMBER=aa1.F_contractnumbe
GROUP BY F_PaperNumber, FSALEORGID
) as FInvoiceAmount,
-(select SUM(bb.F_TotalAmoun) from dbo.T_SAL_DELIVERYNOTICE bb WITH(NOLOCK) WHERE bb.FSaleOrgId=a.FSALEORGID AND bb.F_Papercontract=a.F_contractnumber
+(select SUM(bbf.FAllAmount) from dbo.T_SAL_DELIVERYNOTICE bb LEFT JOIN T_SAL_DELIVERYNOTICEENTRY_F bbf WITH(NOLOCK) ON bb.FID=bbf.FID
+ WHERE bb.FSaleOrgId=a.FSALEORGID AND bb.F_Papercontract=a.F_contractnumber
AND 30 >= DATEDIFF(DAY,bb.FDATE,GETDATE()) AND bb.FDocumentStatus='C' ) as FaHuoAmount30Days,
(
SELECT SUM(F_GeneralInvoice) AS '发票总金额' FROM (
@@ -104,11 +105,14 @@ INNER JOIN T_SAL_ORDER aa1 WITH(NOLOCK) ON t0.F_PAPERNUMBER=aa1.F_contractnumbe
GROUP BY F_PaperNumber, FSALEORGID
) as FInvoiceAmount30Days
,[整单累计退货金额]=ISNULL((
- SELECT SUM(CC.FBillAllAmount_LC) AS '累计退货金额'
+ SELECT SUM(CC.FBILLALLAMOUNT) AS '累计退货金额'
FROM T_SAL_ORDER AA
INNER JOIN T_SAL_ORDERFIN CC ON CC.FID =AA.FID
WHERE AA.FDOCUMENTSTATUS= 'C' AND ISNULL(AA.F_CONTRACTNUMBER,'') !='' AND AA.F_contractnumber LIKE A.F_contractnumber+'%'
AND AA.fid<>A.fid AND aa.FSALEORGID=a.FSALEORGID),0)
+ ,a.F_EXPENSES
+ ,(SELECT ll.FNAME FROM dbo.T_BD_CURRENCY_L ll WITH(NOLOCK) where ll.FCURRENCYID=c.FSettleCurrId ) AS [FBiBie]
+ , c.FExchangeRate FHuiLv
FROM T_SAL_ORDER A
INNER JOIN T_SAL_ORDERFIN C ON C.FID =A.FID
WHERE
@@ -145,7 +149,7 @@ GROUP BY F_PaperNumber, FSALEORGID
C.FBILLALLAMOUNT_LC AS 'FALLAMOUNT' ,
C.FBILLALLAMOUNT as 'FALLAMOUNTY',
ISNULL(A.F_AMOUNT,0) as 'FYAMOUNT',
- C.FBILLALLAMOUNT_LC-A.F_AMOUNT as 'FDAMOUNT2',
+ C.FBILLALLAMOUNT-A.F_AMOUNT as 'FDAMOUNT2',
C.FSETTLECURRID as 'FCurr',
case when DATEDIFF(MONTH, A.FDATE, GETDATE())<3 then 'True' else 'False' end as 'FIs30' ,
'发货通知单' as 'FTYPE',
@@ -155,12 +159,12 @@ GROUP BY F_PaperNumber, FSALEORGID
(
SELECT SUM(F_GeneralInvoice) AS '发票总金额' FROM (
SELECT F_PaperNumber, t0.FSALEORGID,
- CASE WHEN F_ORDERCATEGORY ='67283ced82f38d' THEN FAFTERTOTALTAX
- WHEN F_ORDERCATEGORY !='67283ced82f38d' AND F_GENERALINVOICE='Y' THEN 0 ELSE FAFTERTOTALTAX END AS F_GeneralInvoice
+ CASE WHEN F_ORDERCATEGORY ='67283ced82f38d' THEN FAFTERTOTALTAXFOR
+ WHEN F_ORDERCATEGORY !='67283ced82f38d' AND F_GENERALINVOICE='Y' THEN 0 ELSE FAFTERTOTALTAXFOR END AS F_GeneralInvoice
--FAFTERTOTALTAX
FROM T_IV_SALESIC t0 WITH(NOLOCK)
INNER JOIN T_SAL_ORDER aa1 WITH(NOLOCK) ON t0.F_PAPERNUMBER=aa1.F_contractnumber AND t0.FSETTLEORGID=aa1.FSALEORGID
- --WHERE F_PaperNumber='P202502070004'
+
) AD WHERE AD.F_PaperNumber = A.F_Papercontract AND ad.FSALEORGID=a.FSALEORGID
GROUP BY F_PaperNumber, FSALEORGID
) as FInvoiceAmount,
@@ -168,12 +172,15 @@ GROUP BY F_PaperNumber, FSALEORGID
0 as FaHuoAmount30Days,
0 as FInvoiceAmount30Days
,[整单累计退货金额]=0
+,c.FExchangeRate as FHuiLv
+,0 as F_EXPENSES
+ ,(SELECT ll.FNAME FROM dbo.T_BD_CURRENCY_L ll WITH(NOLOCK) where ll.FCURRENCYID=c.FSettleCurrID ) AS [FBiBie]
FROM T_SAL_DELIVERYNOTICE A
INNER JOIN T_SAL_DELIVERYNOTICEFIN C ON C.FID =A.FID
WHERE
- C.FBILLALLAMOUNT_LC > 0
+ C.FBILLALLAMOUNT > 0
AND A.FDOCUMENTSTATUS = 'C' AND ISNULL(A.F_Papercontract,'')!=''
- AND (A.F_AMOUNT < C.FBILLALLAMOUNT_LC
+ AND (A.F_AMOUNT < C.FBILLALLAMOUNT
or A.F_AMOUNT IS NULL) {where}
) A ORDER BY A.FCUSTID,a.FID desc ");
return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null);
diff --git a/Pilot_KD_Parino/VRYF_FHTZDHXJL/FUpdateAmount.cs b/Pilot_KD_Parino/VRYF_FHTZDHXJL/FUpdateAmount.cs
index 681850b..3dd4097 100644
--- a/Pilot_KD_Parino/VRYF_FHTZDHXJL/FUpdateAmount.cs
+++ b/Pilot_KD_Parino/VRYF_FHTZDHXJL/FUpdateAmount.cs
@@ -6,6 +6,7 @@ using Pilot_KD_Parino.SQL;
using System;
using System.ComponentModel;
using System.Linq;
+using System.Threading;
namespace Pilot_KD_Parino.VRYF_FHTZDHXJL
{
@@ -46,7 +47,7 @@ namespace Pilot_KD_Parino.VRYF_FHTZDHXJL
FALLAMOUNT = Convert.ToDecimal(item["FALLAMOUNT2"]); //要计算的核销金额
- string sql2 = string.Format($@"/*dialect*/Select B.FENTRYID,B.FRECADVANCEAMOUNT,ISNULL(B.F_ORDER,'') as 'F_ORDER' From
+ string sql2 = string.Format($@"/*dialect*/Select B.FENTRYID,B.FRECADVANCEAMOUNT,ISNULL(B.F_ORDER,'') as 'F_ORDER',a.FID From
T_SAL_ORDER A
JOIN
T_SAL_ORDERPLAN B
@@ -55,43 +56,51 @@ namespace Pilot_KD_Parino.VRYF_FHTZDHXJL
Order by F_ORDER desc ,FENTRYID desc ");
var sql2List = DBUtils.ExecuteDynamicObject(Context, sql2);
- //如果只有一个直接赋值
- if (sql2List.Count == 1)
+
+ var fidList = sql2List.Select(t => t["FID"].ToString()).ToList().Distinct().ToList();
+ fidList.ForEach(t =>
{
- 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"]);
+ string sql3 = $@"exec PR_ResetSALORDERPLAN_MBBA_yuyubo {t};";
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;
+ Thread.Sleep(300);
+ });
+ ////如果只有一个直接赋值
+ //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;
- }
+ // //判断是否整条对冲
+ // 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 65788ac..9ddb5aa 100644
--- a/Pilot_KD_Parino/VRYF_FHTZDHXJL/UpdateAmount.cs
+++ b/Pilot_KD_Parino/VRYF_FHTZDHXJL/UpdateAmount.cs
@@ -9,6 +9,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Kingdee.BOS.App.Data;
+using System.Threading;
namespace Pilot_KD_Parino.VRYF_FHTZDHXJL
{
@@ -39,7 +40,7 @@ namespace Pilot_KD_Parino.VRYF_FHTZDHXJL
FALLAMOUNT = Convert.ToDecimal(item["FALLAMOUNT2"]);
- string sql2 = string.Format($@"/*dialect*/Select B.FENTRYID,B.FRECADVANCEAMOUNT,ISNULL(B.F_ORDER,'') as 'F_ORDER' From
+ string sql2 = string.Format($@"/*dialect*/Select B.FENTRYID,B.FRECADVANCEAMOUNT,ISNULL(B.F_ORDER,'') as 'F_ORDER',a.FID From
T_SAL_ORDER A
JOIN
T_SAL_ORDERPLAN B
@@ -48,43 +49,53 @@ namespace Pilot_KD_Parino.VRYF_FHTZDHXJL
Order by F_ORDER ,FENTRYID");
var sql2List = DBUtils.ExecuteDynamicObject(Context, sql2);
- //如果只有一个直接赋值
- if (sql2List.Count == 1)
- {
- string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky = {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 < FRECADVANCEAMOUNT)
- {
- decimal fAmount = 0;
- decimal chazhi = FRECADVANCEAMOUNT - F_MBBA_Decimal_uky;
- //判断是否整条对冲
- if (FALLAMOUNT - chazhi >= 0)
- {
- fAmount = chazhi;
- }
- 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;
- }
- //}
- }
- }
+ var fidList = sql2List.Select(t => t["FID"].ToString()).ToList().Distinct().ToList();
+ fidList.ForEach(t =>
+ {
+ string sql3 = $@"exec PR_ResetSALORDERPLAN_MBBA_yuyubo {t};";
+ DBUtils.ExecuteDynamicObject(Context, sql3);
+ Thread.Sleep(300);
+ });
+
+
+ ////如果只有一个直接赋值
+ //if (sql2List.Count == 1)
+ //{
+ // string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky = {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 < FRECADVANCEAMOUNT)
+ // {
+ // decimal fAmount = 0;
+ // decimal chazhi = FRECADVANCEAMOUNT - F_MBBA_Decimal_uky;
+ // //判断是否整条对冲
+ // if (FALLAMOUNT - chazhi >= 0)
+ // {
+ // fAmount = chazhi;
+ // }
+ // 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;
+ // }
+
+ // //}
+ // }
+ //}
}
}
}