大客户取价逻辑修改
This commit is contained in:
@@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -13,14 +13,14 @@ namespace Gatedge.K3.Pilot.PlugIn.Services.DBService
|
||||
{
|
||||
public SalOutStockDAL(Context context) : base(context)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取销售出库单的订单数据
|
||||
/// </summary>
|
||||
/// <param name="entryId"></param>
|
||||
/// <returns></returns>
|
||||
/// <summary>
|
||||
/// 获取销售出库单的订单数据
|
||||
/// </summary>
|
||||
/// <param name="entryId"></param>
|
||||
/// <returns></returns>
|
||||
public DynamicObjectCollection GetSalOutStockSrcPO(int entryId)
|
||||
{
|
||||
var sql = $@"/*dialect*/
|
||||
@@ -94,5 +94,33 @@ ORDER BY t0.采购订单,t0.采购订单行号,t0.销售出库日期,t0.销售
|
||||
";
|
||||
return DBServiceHelper.ExecuteDynamicObject(this.Context, sql);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取A组织的销售出库数量
|
||||
/// </summary>
|
||||
/// <param name="entryIds"></param>
|
||||
/// <returns></returns>
|
||||
public DynamicObjectCollection GetSalOutStockQty(List<int> entryIds)
|
||||
{
|
||||
var sql = $@"/*dialect*/
|
||||
SELECT t0.FBILLNO '采购入库单号',t0.FBILLTYPE,t0e.FID,t0e.FENTRYID,t0e.FREALQTY,t1.FBILLNO,t1e.FSTOCKQTY,t2e.FQTY,t2e_lk.FSBILLID,t2e_lk.FSID
|
||||
FROM T_STK_INSTOCK t0
|
||||
INNER JOIN T_STK_INSTOCKENTRY t0e on t0e.FID = t0.FID
|
||||
INNER JOIN T_STK_INSTOCKENTRY_LK t0e_lk on t0e.FENTRYID = t0e_lk.FENTRYID
|
||||
AND t0e_lk.FSTABLENAME = 'T_PUR_RECEIVEENTRY'
|
||||
INNER JOIN T_PUR_RECEIVE t1 on t1.FID = t0e_lk.FSBILLID
|
||||
INNER JOIN T_PUR_RECEIVEENTRY t1e on t1.FID = t1e.FID AND t0e_lk.FSBILLID = t1e.FID AND t0e_lk.FSID = t1e.FENTRYID
|
||||
INNER JOIN T_PUR_RECEIVEENTRY_LK t1e_lk on t1e.FENTRYID = t1e_lk.FENTRYID
|
||||
AND t1e_lk.FSTABLENAME = 'T_PUR_POORDERENTRY'
|
||||
INNER JOIN T_PUR_POORDER t2 on t2.FID = t1e_lk.FSBILLID
|
||||
INNER JOIN T_PUR_POORDERENTRY t2e on t2.FID = t2e.FID AND t1e_lk.FSBILLID = t2e.FID AND t1e_lk.FSID = t2e.FENTRYID
|
||||
INNER JOIN T_PUR_POORDERENTRY_LK t2e_lk on t2e.FENTRYID = t2e_lk.FENTRYID
|
||||
AND t2e_lk.FSTABLENAME = 'T_SAL_ORDERENTRY'
|
||||
WHERE 1 = 1
|
||||
AND t0e.FENTRYID IN ({string.Join(",", entryIds)})
|
||||
";
|
||||
|
||||
return DBServiceHelper.ExecuteDynamicObject(this.Context, sql);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
-- INNER JOIN T_SAL_ORDER t1 on t1.FID = t0e_lk.FSBILLID
|
||||
-- INNER JOIN T_SAL_ORDERENTRY t1e on t1.FID = t1e.FID AND t0e_lk.FSBILLID = t1e.FID AND t0e_lk.FSID = t1e.FENTRYID
|
||||
|
||||
SELECT t0.FBILLNO,t0e.FID,t0e.FENTRYID,t0e.FREALQTY,t1.FBILLNO,t1e.FSTOCKQTY,t2e.FQTY,t2e_lk.FSBILLID,t2e_lk.FSID
|
||||
SELECT t0.FBILLNO '<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ⵥ<EFBFBD><EFBFBD>',t0e.FID,t0e.FENTRYID,t0e.FREALQTY,t1.FBILLNO,t1e.FSTOCKQTY,t2e.FQTY,t2e_lk.FSBILLID,t2e_lk.FSID
|
||||
FROM T_STK_INSTOCK t0
|
||||
INNER JOIN T_STK_INSTOCKENTRY t0e on t0e.FID = t0.FID
|
||||
INNER JOIN T_STK_INSTOCKENTRY_LK t0e_lk on t0e.FENTRYID = t0e_lk.FENTRYID
|
||||
@@ -19,6 +19,8 @@ FROM T_STK_INSTOCK t0
|
||||
INNER JOIN T_PUR_POORDERENTRY t2e on t2.FID = t2e.FID AND t1e_lk.FSBILLID = t2e.FID AND t1e_lk.FSID = t2e.FENTRYID
|
||||
INNER JOIN T_PUR_POORDERENTRY_LK t2e_lk on t2e.FENTRYID = t2e_lk.FENTRYID
|
||||
AND t2e_lk.FSTABLENAME = 'T_SAL_ORDERENTRY'
|
||||
WHERE 1 = 1
|
||||
AND t0e.FENTRYID IN ()
|
||||
--INNER JOIN T_SAL_ORDER t3 on t3.FID = t2e_lk.FSBILLID
|
||||
--INNER JOIN T_SAL_ORDERENTRY t3e on t3.FID = t3e.FID AND t2e_lk.FSBILLID = t3e.FID AND t2e_lk.FSID = t3e.FENTRYID
|
||||
--INNER JOIN T_SAL_ORDERENTRY_LK t3e_lk on t3e.FENTRYID = t3e_lk.FENTRYID
|
||||
|
||||
Reference in New Issue
Block a user