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