大客户取价逻辑修改

This commit is contained in:
liangjunyu
2025-12-18 11:29:00 +08:00
parent 4e2aeedb19
commit e6ff48babb
4 changed files with 84 additions and 25 deletions

View File

@@ -257,36 +257,32 @@ namespace Gatedge.K3.Pilot.PlugIn.BOSPlugIn.Sal_Order
isBigCustFlag = creditClassification["Number"].ToString().EqualsIgnoreCase("KHXYFL013");
}
var actualDiscountRate = 0M;
var actualDiscountRateList = new List<decimal>();
var custDiscountRateList = new List<decimal>();
var bigCustDiscountRateList = new List<decimal>();
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>();
var bigCustSettlePrice = entry["BIGCUSTSETTLEPRICE"].Convert<decimal>();
if (materialId_Id > 0)
{
var tempRate = entry["ActualDiscountRate"].Convert<decimal>();
actualDiscountRateList.Add(tempRate);
//actualDiscountRate = tempRate < actualDiscountRate ? tempRate : actualDiscountRate;
if (bigCustSettlePrice > 0)
bigCustDiscountRateList.Add(tempRate);
else
custDiscountRateList.Add(tempRate);
}
}
actualDiscountRate = actualDiscountRateList.Count == 0 ? 0M : actualDiscountRateList.Min();
if (!isBigCustFlag)
{
//普通客户折扣率
this.Model.SetValue("F_CustSaleDiscountRate", actualDiscountRate);
}
else
{
//大客户折扣率
this.Model.SetValue("F_BigCustSaleDiscountRate", actualDiscountRate);
}
//普通客户折扣率
this.Model.SetValue("F_CustSaleDiscountRate", custDiscountRateList.Count == 0 ? 0 : custDiscountRateList.Min());
//大客户折扣率
this.Model.SetValue("F_BigCustSaleDiscountRate", bigCustDiscountRateList.Count == 0 ? 0 : bigCustDiscountRateList.Min());
}
}
}

View File

@@ -83,6 +83,25 @@ namespace Gatedge.K3.Pilot.PlugIn.BOSPlugIn.Sal_OutStock
{
var reBillTypeId = reObj["BillTypeId"].ToString();
var isResult = PushRe2InStock(selectRows, reBillTypeId);
if (isResult.IsSuccess)
{
var isObj = isResult.SuccessDataEnity.FirstOrDefault();
if (isObj != null)
{
var reEntityLinks = isResult.SuccessDataEnity.SelectMany(x => x["InStockEntry"] as DynamicObjectCollection).Select(x => new Entity_Link()
{
EntryId = x["Id"].Long2Int(),
BaseUnitQty = x["RealQty"].Convert<decimal>()
}).ToList();
var reEntityIds = reEntityLinks.Select(x => x.EntryId).ToList();
var reData = dal.GetSalOutStockQty(reEntityIds);
var inSelectRows = reData.Select(x => new ListSelectedRow("0", x["FENTRYID"].Long2Int().ToString(), 0, "")).ToList();
PushSO2De(isObj["BillTypeId"].ToString(), inSelectRows, reEntityLinks);
}
}
}
}
}
@@ -129,6 +148,12 @@ namespace Gatedge.K3.Pilot.PlugIn.BOSPlugIn.Sal_OutStock
return result;
}
/// <summary>
/// 收料通知单下推采购入库单
/// </summary>
/// <param name="selectedRows"></param>
/// <param name="reBillTypeId"></param>
/// <returns></returns>
private IOperationResult PushRe2InStock(List<ListSelectedRow> selectedRows, string reBillTypeId)
{
IOperationResult result = null;
@@ -155,7 +180,14 @@ namespace Gatedge.K3.Pilot.PlugIn.BOSPlugIn.Sal_OutStock
return result;
}
/// <summary>
///
/// </summary>
/// <param name="destObjs"></param>
/// <param name="entity_Links"></param>
/// <param name="sourceFormId"></param>
/// <param name="sourceBillTypeId"></param>
/// <param name="qtyName"></param>
private void SetQtyAction(DynamicObject[] destObjs, List<Entity_Link> entity_Links, string sourceFormId, string sourceBillTypeId, string qtyName)
{
//获取元数据服务
@@ -192,7 +224,7 @@ namespace Gatedge.K3.Pilot.PlugIn.BOSPlugIn.Sal_OutStock
/// </summary>
/// <param name="selectedRows"></param>
/// <returns></returns>
private IOperationResult PushSO2De(List<ListSelectedRow> selectedRows)
private IOperationResult PushSO2De(string billTypeId, List<ListSelectedRow> selectedRows, List<Entity_Link> entity_Links)
{
IOperationResult result = null;
@@ -203,6 +235,7 @@ namespace Gatedge.K3.Pilot.PlugIn.BOSPlugIn.Sal_OutStock
string convertRuleId = "SaleOrder-DeliveryNotice";
//PUR_ReceiveBill-STK_InStock
//result = DoPustBill(selectedRows, "", sourceFormId, targetFormId, convertRuleId);
result = DoPustBill(sourceFormId, targetFormId, convertRuleId, selectedRows, billTypeId, entity_Links, "FQty");
}
catch (Exception ex)
{