From 94a26e02e353666ad5b7378b4ce1e8d6cd621bca Mon Sep 17 00:00:00 2001 From: LiFan <2308045698@qq.com> Date: 星期二, 25 二月 2025 15:43:01 +0800 Subject: [PATCH] update --- jrj/project/business/GDN3.maint.cpp | 50 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 48 insertions(+), 2 deletions(-) diff --git a/jrj/project/business/GDN3.maint.cpp b/jrj/project/business/GDN3.maint.cpp index 349b566..3da7240 100644 --- a/jrj/project/business/GDN3.maint.cpp +++ b/jrj/project/business/GDN3.maint.cpp @@ -386,7 +386,7 @@ dw_base.SetItemString(1, L"Packages", xstring(Packages_s)); dw_base.SetItemDouble(1, L"Volume", xdouble(Vol_s).round(2)); dw_base.ItemChangeTo(1, L"Amount", xstring(Amount_s)); - + dw_base.ItemChangeTo(1, L"InsuredAmount", xstring(Amount_s)); dw_base.SetItemDouble(1, L"PrivateCommissionAmount", ResearchCommissionRate_s + MiddlemanAmountRate_s); //dw_base.SetItemDouble(1,L"Cost",Cost_s); @@ -1415,6 +1415,7 @@ } CalcDraftAmount(); CalcProfit(); + GetInsuranceAmountEx(); dw_base.Redraw(); } @@ -1528,7 +1529,10 @@ else if (col == L"ETD") { xstring ETD = dw_base.GetItemString(1, L"ETD"); + xstring CustomerID = dw_base.GetItemString(1, L"CustomerID"); + xstring exchangeRate = L""; + xstring PremiumRate = L""; if (ETD != L"") { trace(ETD); @@ -1549,10 +1553,44 @@ } evalManagementFee(); evalRiskFundAmount(); - } + xml x1 = ViewObject::RetrieveData(L"/sale/data/GDN3/GetInsuranceRateEx", L"ETD", ETD, L"CustomerID", CustomerID); + if (x1.selectSingleNode(L"root/item/@value")) + PremiumRate = x1.selectSingleNode(L"root/item/@value").text(); + + if (PremiumRate != L"") + { + dw_base.SetItemString(1, L"InsuranceRateEx", PremiumRate); + GetInsuranceAmountEx(); + } + + } dw_profit.Redraw(); + dw_base.Redraw(); } + else if (col == L"InsuredAmount" || col == L"InsuranceRateEx") + { + GetInsuranceAmountEx(); + } + return 1; + } + + int GetInsuranceAmountEx() + { + double InsuranceRateEx = dw_base.GetItemDouble(1, L"InsuranceRateEx"); + double InsuredAmount = dw_base.GetItemDouble(1, L"InsuredAmount"); + + double ExchangeAmountEx = dw_profit.GetItemDouble(1, L"ExchangeAmountEx"); + + dw_base.SetItemDouble(1, L"InsuranceAmountEx", InsuranceRateEx * InsuredAmount / 100); + dw_profit.SetItemDouble(1, L"SinosurAmount", InsuranceRateEx * InsuredAmount / 100); + + dw_profit.SetItemDouble(1, L"ExchangeAmountEx", ExchangeAmountEx + (InsuranceRateEx * InsuredAmount / 100)); + evalProfitAmount(); + //dw_profit.ItemChangeTo(1,"SinosurAmount",(InsuranceRateEx * InsuredAmount/100).toString()); + dw_base.Redraw(); + dw_profit.Redraw(); + return 1; } @@ -2652,6 +2690,11 @@ if (t.selectSingleNode(L"CustomerID"))dw_base.SetItemString(1, L"CustomerID", t.selectSingleNode(L"CustomerID").text()); if (t.selectSingleNode(L"CustomerID/@_displaystring"))dw_base.SetItemDisplayString(1, L"CustomerID", t.selectSingleNode(L"CustomerID/@_displaystring").text()); + if (t.selectSingleNode(L"UOCCode"))dw_base.SetItemString(1, L"UOCCode", t.selectSingleNode(L"UOCCode").text()); + if (t.selectSingleNode(L"ApprovalIimit"))dw_base.SetItemString(1, L"ApprovalIimit", t.selectSingleNode(L"ApprovalIimit").text()); + if (t.selectSingleNode(L"InsuranceRateEx"))dw_base.SetItemString(1, L"InsuranceRateEx", t.selectSingleNode(L"InsuranceRateEx").text()); + if (t.selectSingleNode(L"AvailableIimits"))dw_base.SetItemString(1, L"AvailableIimits", t.selectSingleNode(L"AvailableIimits").text()); + //trace(L"*****************"); if (t.selectSingleNode(L"LCNo"))dw_base.SetItemString(1, L"LCNo", t.selectSingleNode(L"LCNo").text()); if (t.selectSingleNode(L"LCSignDate"))dw_base.SetItemString(1, L"LCSignDate", t.selectSingleNode(L"LCSignDate").text()); @@ -3515,6 +3558,7 @@ dw_profit.SetItemString(1, L"Amount", dw_base.GetItemString(1, L"Amount")); dw_profit.SetItemString(1, L"Freight", dw_base.GetItemString(1, L"Freight")); dw_profit.SetItemString(1, L"InsuranceAmount", dw_base.GetItemString(1, L"InsuranceAmount")); + dw_profit.SetItemString(1, L"SinosurAmount", dw_base.GetItemString(1, L"InsuranceAmountEx")); //dw_profit.SetItemString(1,L"CommissionAmount",dw_base.GetItemString(1,L"CommissionAmount")); double comm1 = dw_base.GetItemDouble(1, L"CommissionAmount"); @@ -3542,6 +3586,7 @@ ttl -= dw_base.GetItemDouble(1, L"CommissionAmount"); ttl -= dw_base.GetItemDouble(1, L"PrivateCommissionAmount"); ttl -= dw_base.GetItemDouble(1, L"DiscountAmount"); + ttl -= dw_base.GetItemDouble(1, L"InsuranceAmountEx"); ttl += dw_profit.GetItemDouble(1, L"SaleExternCost"); @@ -3635,6 +3680,7 @@ int CalcProfit() { + GetInsuranceAmountEx(); evalSale(); evalManagementFee(); evalRiskFundAmount(); -- Gitblit v1.9.3