1
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user