diff --git a/Gatedge.K3.Pilot.PlugIn/BOSPlugIn/Sal_Order/Bill.cs b/Gatedge.K3.Pilot.PlugIn/BOSPlugIn/Sal_Order/Bill.cs index aca5b78..9f1ac53 100644 --- a/Gatedge.K3.Pilot.PlugIn/BOSPlugIn/Sal_Order/Bill.cs +++ b/Gatedge.K3.Pilot.PlugIn/BOSPlugIn/Sal_Order/Bill.cs @@ -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(); + + if (materialId_Id > 0) + { + var tempRate = entry["ActualDiscountRate"].Convert(); + + 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); + } + } + } + } + } } } \ No newline at end of file diff --git a/Gatedge.K3.Pilot.PlugIn/Gatedge.K3.Pilot.PlugIn.csproj b/Gatedge.K3.Pilot.PlugIn/Gatedge.K3.Pilot.PlugIn.csproj index ff4a907..26cf29c 100644 --- a/Gatedge.K3.Pilot.PlugIn/Gatedge.K3.Pilot.PlugIn.csproj +++ b/Gatedge.K3.Pilot.PlugIn/Gatedge.K3.Pilot.PlugIn.csproj @@ -100,7 +100,9 @@ - + + + copy $(TargetPath) "D:\Program Files (x86)\Kingdee\K3Cloud\WebSite\Bin\$(TargetFileName)" diff --git a/查询.sql b/查询.sql index 6431518..d36ddb7 100644 --- a/查询.sql +++ b/查询.sql @@ -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 \ No newline at end of file