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; var F_ActualDiscountRate = settlementPrice == 0 ? 100M : price / settlementPrice * 100;
this.Model.SetValue("F_ActualDiscountRate", F_ActualDiscountRate, e.Row); this.Model.SetValue("F_ActualDiscountRate", F_ActualDiscountRate, e.Row);
this.View.InvokeFieldUpdateService("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.Model.SetValue("F_CustSaleDiscountRate", F_CustSaleDiscountRate); //this.Model.SetValue("F_CustSaleDiscountRate", F_CustSaleDiscountRate);
//大客户折扣率 ////大客户折扣率
this.Model.SetValue("F_BigCustSaleDiscountRate", F_BigCustSaleDiscountRate); //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; var F_ActualDiscountRate = settlementPrice == 0 ? 100M : price / settlementPrice * 100;
this.Model.SetValue("F_ActualDiscountRate", F_ActualDiscountRate, e.Row); this.Model.SetValue("F_ActualDiscountRate", F_ActualDiscountRate, e.Row);
this.View.InvokeFieldUpdateService("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.Model.SetValue("F_CustSaleDiscountRate", F_CustSaleDiscountRate); //this.Model.SetValue("F_CustSaleDiscountRate", F_CustSaleDiscountRate);
//大客户折扣率 ////大客户折扣率
this.Model.SetValue("F_BigCustSaleDiscountRate", F_BigCustSaleDiscountRate); //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; var F_ActualDiscountRate = settlementPrice == 0 ? 100M : price / settlementPrice * 100;
this.Model.SetValue("F_ActualDiscountRate", F_ActualDiscountRate, rowIndex); 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_CustSaleDiscountRate", F_CustSaleDiscountRate);
//大客户折扣率 ////大客户折扣率
this.Model.SetValue("F_BigCustSaleDiscountRate", F_BigCustSaleDiscountRate); //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\BaseDAL.cs" />
<Compile Include="Services\DBService\BDCustPriceDAL.cs" /> <Compile Include="Services\DBService\BDCustPriceDAL.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup /> <ItemGroup>
<Folder Include="BOSPlugIn\Sal_Order\ServicePlugIn\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup> <PropertyGroup>
<PostBuildEvent>copy $(TargetPath) "D:\Program Files (x86)\Kingdee\K3Cloud\WebSite\Bin\$(TargetFileName)"</PostBuildEvent> <PostBuildEvent>copy $(TargetPath) "D:\Program Files (x86)\Kingdee\K3Cloud\WebSite\Bin\$(TargetFileName)"</PostBuildEvent>

View File

@@ -1,4 +1,6 @@
SELECT t0.FBILLNO AS '<EFBFBD><EFBFBD><EFBFBD>۳<EFBFBD><EFBFBD>' SELECT t0.FBILLNO AS '<EFBFBD><EFBFBD><EFBFBD>۳<EFBFBD><EFBFBD>'
,t5_l.FNAME '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֯'
,t6_l.FNAME '<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD>֯'
,t0e.FENTRYID AS '<EFBFBD><EFBFBD><EFBFBD>۳<EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼ID' ,t0e.FENTRYID AS '<EFBFBD><EFBFBD><EFBFBD>۳<EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼ID'
,t0e.FREALQTY AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,t0e.FREALQTY AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,t0e_m.FNUMBER AS '<EFBFBD><EFBFBD><EFBFBD>۳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,t0e_m.FNUMBER AS '<EFBFBD><EFBFBD><EFBFBD>۳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
@@ -9,10 +11,12 @@ SELECT t0.FBILLNO AS '
,t2.FBILLNO AS '<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD>' ,t2.FBILLNO AS '<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD>'
,t2e.FENTRYID AS '<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼ID' ,t2e.FENTRYID AS '<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼ID'
,t2e.FQTY AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,t2e.FQTY AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,t0e_m.FNUMBER AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,t2e_m.FNUMBER AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,t3.FBILLNO AS '<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,t3.FBILLNO AS '<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,t3e.FSEQ AS '<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>'
,t3e.FENTRYID AS '<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼ID' ,t3e.FENTRYID AS '<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼ID'
,t3e.FQTY AS '<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,t3e.FQTY AS '<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,t3.FPURCHASEORGID
,ISNULL(t4.FACTRECEIVEQTY,0) AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,ISNULL(t4.FACTRECEIVEQTY,0) AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,ISNULL(t4.FREALQTY,0) '<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ,ISNULL(t4.FREALQTY,0) '<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
FROM T_SAL_OUTSTOCK t0 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 INNER JOIN T_SAL_ORDERENTRY_LK t2e_lk on t2e.FENTRYID = t2e_lk.FENTRYID
AND t2e_lk.FSTABLENAME = 't_PUR_POOrderEntry' AND t2e_lk.FSTABLENAME = 't_PUR_POOrderEntry'
INNER JOIN T_PUR_POORDER t3 on t2e_lk.FSBILLID = t3.FID INNER JOIN T_PUR_POORDER t3 on t2e_lk.FSBILLID = t3.FID
AND t3.FBILLNO = 'XN-CGDD2025091000001' --AND t3.FBILLNO = 'XN-CGDD2025091000001'
INNER JOIN T_PUR_POORDERENTRY t3e on t3.FID = t3e.FID AND t2e_lk.FSID = t3e.FENTRYID 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 ( OUTER APPLY (
SELECT SUM(t4e.FACTRECEIVEQTY) 'FACTRECEIVEQTY',SUM(t5.FREALQTY) 'FREALQTY' SELECT SUM(t4e.FACTRECEIVEQTY) 'FACTRECEIVEQTY',SUM(t5.FREALQTY) 'FREALQTY'
FROM T_PUR_RECEIVE t4 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 WHERE t3e.FENTRYID = t4e_lk.FSID AND t3e.FID = t4e_lk.FSBILLID
GROUP BY t4e_lk.FSID GROUP BY t4e_lk.FSID
) t4 ) 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