This commit is contained in:
liangjunyu
2025-12-09 10:14:19 +08:00
parent 18906e9666
commit 6894d5ae6d
3 changed files with 89 additions and 33 deletions

View File

@@ -76,19 +76,14 @@ namespace Gatedge.K3.Pilot.PlugIn.BOSPlugIn.Sal_Order
//实际户折扣率
var F_ActualDiscountRate = settlementPrice == 0 ? 100M : price / settlementPrice * 100;
this.Model.SetValue("F_ActualDiscountRate", F_ActualDiscountRate, e.Row);
if (isBigCustFlag && (F_BigCustSaleDiscountRate == 0 || (F_ActualDiscountRate > 0 && F_ActualDiscountRate < F_BigCustSaleDiscountRate)))
F_BigCustSaleDiscountRate = F_ActualDiscountRate;
if (!isBigCustFlag && (F_CustSaleDiscountRate == 0 || (F_ActualDiscountRate > 0 && F_ActualDiscountRate < F_CustSaleDiscountRate)))
F_CustSaleDiscountRate = F_ActualDiscountRate;
this.View.InvokeFieldUpdateService("F_ActualDiscountRate", e.Row);
}
//普通客户折扣率
this.Model.SetValue("F_CustSaleDiscountRate", F_CustSaleDiscountRate);
//大客户折扣率
this.Model.SetValue("F_BigCustSaleDiscountRate", F_BigCustSaleDiscountRate);
////普通客户折扣率
//this.Model.SetValue("F_CustSaleDiscountRate", F_CustSaleDiscountRate);
////大客户折扣率
//this.Model.SetValue("F_BigCustSaleDiscountRate", F_BigCustSaleDiscountRate);
}
//销售价格
@@ -150,19 +145,14 @@ namespace Gatedge.K3.Pilot.PlugIn.BOSPlugIn.Sal_Order
//实际户折扣率
var F_ActualDiscountRate = settlementPrice == 0 ? 100M : price / settlementPrice * 100;
this.Model.SetValue("F_ActualDiscountRate", F_ActualDiscountRate, e.Row);
if (isBigCustFlag && (F_BigCustSaleDiscountRate == 0 || (F_ActualDiscountRate > 0 && F_ActualDiscountRate < F_BigCustSaleDiscountRate)))
F_BigCustSaleDiscountRate = F_ActualDiscountRate;
if (!isBigCustFlag && (F_CustSaleDiscountRate == 0 || (F_ActualDiscountRate > 0 && F_ActualDiscountRate < F_CustSaleDiscountRate)))
F_CustSaleDiscountRate = F_ActualDiscountRate;
this.View.InvokeFieldUpdateService("F_ActualDiscountRate", e.Row);
}
//普通客户折扣率
this.Model.SetValue("F_CustSaleDiscountRate", F_CustSaleDiscountRate);
//大客户折扣率
this.Model.SetValue("F_BigCustSaleDiscountRate", F_BigCustSaleDiscountRate);
////普通客户折扣率
//this.Model.SetValue("F_CustSaleDiscountRate", F_CustSaleDiscountRate);
////大客户折扣率
//this.Model.SetValue("F_BigCustSaleDiscountRate", F_BigCustSaleDiscountRate);
}
//客户
@@ -234,20 +224,76 @@ namespace Gatedge.K3.Pilot.PlugIn.BOSPlugIn.Sal_Order
//大客户折扣率
var F_ActualDiscountRate = settlementPrice == 0 ? 100M : price / settlementPrice * 100;
this.Model.SetValue("F_ActualDiscountRate", F_ActualDiscountRate, rowIndex);
this.View.InvokeFieldUpdateService("F_ActualDiscountRate", rowIndex);
if (isBigCustFlag && (F_BigCustSaleDiscountRate == 0 || (F_ActualDiscountRate > 0 && F_ActualDiscountRate < F_BigCustSaleDiscountRate)))
F_BigCustSaleDiscountRate = F_ActualDiscountRate;
if (!isBigCustFlag && (F_CustSaleDiscountRate == 0 || (F_ActualDiscountRate > 0 && F_ActualDiscountRate < F_CustSaleDiscountRate)))
F_CustSaleDiscountRate = F_ActualDiscountRate;
}
//普通客户折扣率
this.Model.SetValue("F_CustSaleDiscountRate", F_CustSaleDiscountRate);
//大客户折扣率
this.Model.SetValue("F_BigCustSaleDiscountRate", F_BigCustSaleDiscountRate);
////普通客户折扣率
//this.Model.SetValue("F_CustSaleDiscountRate", F_CustSaleDiscountRate);
////大客户折扣率
//this.Model.SetValue("F_BigCustSaleDiscountRate", F_BigCustSaleDiscountRate);
}
}
if (e.Field.Key.EqualsIgnoreCase("F_ActualDiscountRate"))
{
//普通客户折扣率
this.Model.SetValue("F_CustSaleDiscountRate", 0);
//大客户折扣率
this.Model.SetValue("F_BigCustSaleDiscountRate", 0);
var details = this.View.BusinessInfo.GetEntity("FSaleOrderEntry");
if (details != null)
{
var entrys = this.View.Model.GetEntityDataObject(details);
bool isBigCustFlag = false;
var custId_Id = this.View.Model.DataObject["CustId_Id"].Long2Int();
if (custId_Id > 0)
{
var custId = this.View.Model.DataObject["CustId"] as DynamicObject;
var creditClassification = custId["F_CreditClassification"] as DynamicObject;
if (creditClassification != null && creditClassification["Number"] != null)
{
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 tempRate = entry["ActualDiscountRate"].Convert<decimal>();
if (actualDiscountRate == 0)
actualDiscountRate = tempRate;
else
actualDiscountRate = tempRate < actualDiscountRate ? tempRate : actualDiscountRate;
}
}
if (custId_Id > 0)
{
if (isBigCustFlag)
{
//普通客户折扣率
this.Model.SetValue("F_CustSaleDiscountRate", actualDiscountRate);
}
else
{
//大客户折扣率
this.Model.SetValue("F_BigCustSaleDiscountRate", actualDiscountRate);
}
}
}
}
}
}
}