This commit is contained in:
liangjunyu
2025-12-12 14:46:03 +08:00
parent 5ad8d87250
commit 14affa9131
8 changed files with 853 additions and 99 deletions

View File

@@ -74,16 +74,11 @@ namespace Gatedge.K3.Pilot.PlugIn.BOSPlugIn.Sal_Order
}
//实际户折扣率
var F_ActualDiscountRate = settlementPrice == 0 ? 100M : price / settlementPrice * 100;
var F_ActualDiscountRate = CalculateActualDiscountRate(price, settlementPrice);
this.Model.SetValue("F_ActualDiscountRate", F_ActualDiscountRate, e.Row);
this.View.InvokeFieldUpdateService("F_ActualDiscountRate", e.Row);
}
////普通客户折扣率
//this.Model.SetValue("F_CustSaleDiscountRate", F_CustSaleDiscountRate);
////大客户折扣率
//this.Model.SetValue("F_BigCustSaleDiscountRate", F_BigCustSaleDiscountRate);
}
//销售价格
@@ -143,16 +138,12 @@ namespace Gatedge.K3.Pilot.PlugIn.BOSPlugIn.Sal_Order
}
//实际户折扣率
var F_ActualDiscountRate = settlementPrice == 0 ? 100M : price / settlementPrice * 100;
var F_ActualDiscountRate = CalculateActualDiscountRate(price, settlementPrice);
this.Model.SetValue("F_ActualDiscountRate", F_ActualDiscountRate, e.Row);
this.View.InvokeFieldUpdateService("F_ActualDiscountRate", e.Row);
}
////普通客户折扣率
//this.Model.SetValue("F_CustSaleDiscountRate", F_CustSaleDiscountRate);
////大客户折扣率
//this.Model.SetValue("F_BigCustSaleDiscountRate", F_BigCustSaleDiscountRate);
}
//客户
@@ -222,19 +213,16 @@ namespace Gatedge.K3.Pilot.PlugIn.BOSPlugIn.Sal_Order
}
//大客户折扣率
var F_ActualDiscountRate = settlementPrice == 0 ? 100M : price / settlementPrice * 100;
var F_ActualDiscountRate = CalculateActualDiscountRate(price, settlementPrice);
this.Model.SetValue("F_ActualDiscountRate", F_ActualDiscountRate, rowIndex);
this.View.InvokeFieldUpdateService("F_ActualDiscountRate", rowIndex);
}
////普通客户折扣率
//this.Model.SetValue("F_CustSaleDiscountRate", F_CustSaleDiscountRate);
////大客户折扣率
//this.Model.SetValue("F_BigCustSaleDiscountRate", F_BigCustSaleDiscountRate);
}
}
//实际折扣率
if (e.Field.Key.EqualsIgnoreCase("F_ActualDiscountRate"))
{
//普通客户折扣率
@@ -256,31 +244,28 @@ namespace Gatedge.K3.Pilot.PlugIn.BOSPlugIn.Sal_Order
{
isBigCustFlag = creditClassification["Number"].ToString().EqualsIgnoreCase("KHXYFL013");
}
}
var actualDiscountRate = 0M;
foreach (var entry in entrys)
{
var rowIndex = this.View.Model.GetRowIndex(details, entry);
var materialId_Id = entry["MaterialId_Id"].Long2Int();
var price = entry["TaxPrice"].Convert<decimal>();
if (materialId_Id > 0)
var actualDiscountRate = 0M;
var actualDiscountRateList = new List<decimal>();
foreach (var entry in entrys)
{
var tempRate = entry["ActualDiscountRate"].Convert<decimal>();
var rowIndex = this.View.Model.GetRowIndex(details, entry);
if (actualDiscountRate == 0)
actualDiscountRate = tempRate;
else
actualDiscountRate = tempRate < actualDiscountRate ? tempRate : actualDiscountRate;
var materialId_Id = entry["MaterialId_Id"].Long2Int();
var price = entry["TaxPrice"].Convert<decimal>();
if (materialId_Id > 0)
{
var tempRate = entry["ActualDiscountRate"].Convert<decimal>();
actualDiscountRateList.Add(tempRate);
//actualDiscountRate = tempRate < actualDiscountRate ? tempRate : actualDiscountRate;
}
}
}
if (custId_Id > 0)
{
if (isBigCustFlag)
actualDiscountRate = actualDiscountRateList.Count == 0 ? 0M : actualDiscountRateList.Min();
if (!isBigCustFlag)
{
//普通客户折扣率
this.Model.SetValue("F_CustSaleDiscountRate", actualDiscountRate);
@@ -295,5 +280,27 @@ namespace Gatedge.K3.Pilot.PlugIn.BOSPlugIn.Sal_Order
}
}
/// <summary>
/// 计算实际折扣率
/// </summary>
/// <param name="price"></param>
/// <param name="settlementPrice"></param>
/// <returns></returns>
private decimal CalculateActualDiscountRate(decimal price, decimal settlementPrice)
{
var actualDiscountRate = 0M;
if (price != 0 && settlementPrice == 0)
actualDiscountRate = 100;
else if (price == 0 && settlementPrice != 0)
actualDiscountRate = 0;
else if (price == 0 && settlementPrice == 0)
actualDiscountRate = 0;
else
actualDiscountRate = price / settlementPrice;
return actualDiscountRate;
}
}
}