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);
}
}
}
}
}
}
}

View File

@ -100,7 +100,9 @@
<Compile Include="Services\DBService\BaseDAL.cs" />
<Compile Include="Services\DBService\BDCustPriceDAL.cs" />
</ItemGroup>
<ItemGroup />
<ItemGroup>
<Folder Include="BOSPlugIn\Sal_Order\ServicePlugIn\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>copy $(TargetPath) "D:\Program Files (x86)\Kingdee\K3Cloud\WebSite\Bin\$(TargetFileName)"</PostBuildEvent>

View File

@ -1,4 +1,6 @@
SELECT t0.FBILLNO AS '销售出库单'
,t5_l.FNAME 'ÏúÊÛ×éÖ¯'
,t6_l.FNAME '²É¹º×éÖ¯'
,t0e.FENTRYID AS '销售出库单分录ID'
,t0e.FREALQTY AS '出库数量'
,t0e_m.FNUMBER AS '销售出库物料'
@ -9,10 +11,12 @@ SELECT t0.FBILLNO AS '
,t2.FBILLNO AS '销售订单'
,t2e.FENTRYID AS '销售订单分录ID'
,t2e.FQTY AS '订单数量'
,t0e_m.FNUMBER AS 'ÏúÊÛÎïÁÏ'
,t2e_m.FNUMBER AS 'ÏúÊÛÎïÁÏ'
,t3.FBILLNO AS '采购订单'
,t3e.FSEQ AS '²É¹º¶©µ¥ÐкÅ'
,t3e.FENTRYID AS '采购订单分录ID'
,t3e.FQTY AS '采购数量'
,t3.FPURCHASEORGID
,ISNULL(t4.FACTRECEIVEQTY,0) AS '收料数量'
,ISNULL(t4.FREALQTY,0) '采购入库数量'
FROM T_SAL_OUTSTOCK t0
@ -31,8 +35,9 @@ FROM T_SAL_OUTSTOCK t0
INNER JOIN T_SAL_ORDERENTRY_LK t2e_lk on t2e.FENTRYID = t2e_lk.FENTRYID
AND t2e_lk.FSTABLENAME = 't_PUR_POOrderEntry'
INNER JOIN T_PUR_POORDER t3 on t2e_lk.FSBILLID = t3.FID
AND t3.FBILLNO = 'XN-CGDD2025091000001'
INNER JOIN T_PUR_POORDERENTRY t3e on t3.FID = t3e.FID AND t2e_lk.FSID = t3e.FENTRYID
--AND t3.FBILLNO = 'XN-CGDD2025091000001'
INNER JOIN T_PUR_POORDERENTRY t3e on t3.FID = t3e.FID AND t2e_lk.FSBILLID = t3e.FID AND t2e_lk.FSID = t3e.FENTRYID
INNER JOIN T_PUR_POORDERENTRY_LK t3e_lk on t3e_lk.FENTRYID = t3e.FENTRYID
OUTER APPLY (
SELECT SUM(t4e.FACTRECEIVEQTY) 'FACTRECEIVEQTY',SUM(t5.FREALQTY) 'FREALQTY'
FROM T_PUR_RECEIVE t4
@ -51,3 +56,6 @@ FROM T_SAL_OUTSTOCK t0
WHERE t3e.FENTRYID = t4e_lk.FSID AND t3e.FID = t4e_lk.FSBILLID
GROUP BY t4e_lk.FSID
) t4
INNER JOIN T_ORG_ORGANIZATIONS_L t5_l on t5_l.FORGID = t0.FSALEORGID AND t5_l.FLOCALEID = 2052
INNER JOIN T_ORG_ORGANIZATIONS_L t6_l on t6_l.FORGID = t3.FPURCHASEORGID AND t6_l.FLOCALEID = 2052
ORDER BY t3e.FID,t3e.FENTRYID