From a4344c9bada0722c6ef7fac5d95f29a110eea0f1 Mon Sep 17 00:00:00 2001
From: xj qian <qianxj15@sina.com>
Date: 星期一, 21 四月 2025 10:32:05 +0800
Subject: [PATCH] Merge branch 'master' of http://116.62.18.175:6699/r/mis-prj

---
 jrj/project/business/GDN3.maint.cpp |  100 ++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 73 insertions(+), 27 deletions(-)

diff --git a/jrj/project/business/GDN3.maint.cpp b/jrj/project/business/GDN3.maint.cpp
index a9d306d..3da7240 100644
--- a/jrj/project/business/GDN3.maint.cpp
+++ b/jrj/project/business/GDN3.maint.cpp
@@ -55,8 +55,8 @@
 
 		xml x;
 		
-		xaserverarg& arg = *new xaserverarg;
-		arg.setNativePointer(arg.CreateInstance());
+		xaserverarg arg ;
+		
 		arg.AddArg(L"scene", scene, L"xs:xstring");
 		arg.AddArg(L"EntityID", EntityID, L"xs:xstring");
 		arg.AddArg(L"EntityName", EntityName, L"xs:xstring");
@@ -197,7 +197,7 @@
 		
 		KXMLDOMDocument xitemdoc = xitem;
 		dw_item.DwUpdateAllToEx(xitemdoc);
-		if (xitem.xml() != L"")
+		if ((xstring)xitem.xml() != L"")
 		{
 			KXMLDOMElement eitem = xitemdoc.documentElement();
 			if (eitem) ebase.appendChild(eitem);
@@ -209,7 +209,7 @@
 		dw_source.DwUpdateAllToEx(xsourcedoc);
 
 
-		if (xsource.xml() != L"")
+		if ((xstring)xsource.xml() != L"")
 		{
 			KXMLDOMElement eitem1 = xitemdoc.documentElement();
 			if (eitem1) ebase.appendChild(eitem1);
@@ -219,7 +219,7 @@
 	
 		KXMLDOMDocument xcustomdoc = xcustom;
 		dw_source.DwUpdateAllToEx(xcustomdoc);
-		if (xcustom.xml() != L"")
+		if ((xstring)xcustom.xml() != L"")
 		{
 			KXMLDOMElement eitem2 = xitemdoc.documentElement();
 			if (eitem2) ebase.appendChild(eitem2);
@@ -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);
@@ -505,7 +505,7 @@
 
 		//if(dw_base.GetItemString(1,L"GoodsSource") == L"")
 		//{
-		//	alert(L"请选择货物产地(货物产地:开票工厂金额最大的工厂所属地)L");
+		//	alert(L"请选择货物产地(货物产地:开票工厂金额最大的工厂所属地)");
 		//	return 0;
 	//	}
 
@@ -633,14 +633,15 @@
 			}
 		}
 		xml xcustom;
-		
+		xstring error5;
 		dw_custom.DwUpdateAllToEx(xcustom);
-		if (xcustom.xml() != L"")
+		
+		if ((xstring)xcustom.xml() != L"")
 		{
 			xcustom = CustomView::UpdateCustomItem(dw_base.GetItemString(1, L"InvoiceNo"), xcustom.xml());
 			if (!xcustom)
 			{
-				xstring error5 = xcustom.text();
+				 error5 = xcustom.text();
 			}
 			else
 			{
@@ -700,7 +701,7 @@
 		xml xcdelement ;
 		
 		dw_cdelement.DwUpdateAllToEx(xcdelement);
-		if (xcdelement.xml() != L"")
+		if ((xstring)xcdelement.xml() != L"")
 		{
 			xcdelement = CustomView::UpdateCustomElement(dw_base.GetItemString(1, L"InvoiceNo"), xcdelement.xml());
 			if (!xcdelement)
@@ -869,7 +870,7 @@
 					xstring ClassifyID = dw_custom.GetItemString(k, L"ClassifyID");
 					xstring ClassifyName = dw_custom.GetItemString(k, L"CustName");
 					xstring GroupNo = dw_custom.GetItemString(k, L"GroupNo");
-					if (GroupNo != L"") ClassifyName += ClassifyName + L"(L" + GroupNo + L")L";
+					if (GroupNo != L"") ClassifyName += ClassifyName + L"(" + GroupNo + L")";
 
 					double LegalQty = dw_custom.GetItemDouble(k, L"LegalQty");
 
@@ -913,7 +914,7 @@
 				xstring ClassifyID = dw_custom.GetItemString(k, L"ClassifyID");
 				xstring ClassifyName = dw_custom.GetItemString(k, L"CustName");
 				xstring GroupNo = dw_custom.GetItemString(k, L"GroupNo");
-				if (GroupNo != L"") ClassifyName += ClassifyName + L"(L" + GroupNo + L")L";
+				if (GroupNo != L"") ClassifyName += ClassifyName + L"(" + GroupNo + L")";
 				double VQuantity = dw_custom.GetItemDouble(k, L"Quantity");
 				double VAmount = dw_custom.GetItemDouble(k, L"Amount");
 				double qty = 0.0;
@@ -1414,6 +1415,7 @@
 			}
 			CalcDraftAmount();
 			CalcProfit();
+			GetInsuranceAmountEx();
 
 			dw_base.Redraw();
 		}
@@ -1527,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);
@@ -1548,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;
 	}
 
@@ -1868,7 +1907,7 @@
 		if (x == L"userSalespersonID")
 		{
 			xstring sSalespersonID = dw_base.GetItemString(1, L"SalespersonID");
-			hdr->data = sSalespersonID;
+			hdr->data = sSalespersonID.c_str(true);
 		}
 		return 1;
 	}
@@ -1902,7 +1941,7 @@
 		CheckCDLine();
 		CheckGW();
 		xaserverarg arg ;
-		arg.setNativePointer(arg.CreateInstance());
+		
 		arg.AddArg(L"EntityName", L"GDN3", L"");
 		arg.AddArg(L"EntityID", InvoiceID, L"");
 		arg.AddArg(L"EntityNo", dw_base.GetItemString(1, L"InvoiceNo"), L"");
@@ -2132,7 +2171,7 @@
 					if (o.selectSingleNode(L"VATRates"))
 					{
 						xstring str1 = o.selectSingleNode(L"VATRates").text();
-						if (str1.find(L",L") >= 0) str1 = str1.left(str1.find(L",L"));
+						if (str1.find(L",") >= 0) str1 = str1.left(str1.find(L","));
 						dw_custom.SetItemString(i, L"VATRates", str1);
 					}
 					if (o.selectSingleNode(L"CustEName"))
@@ -2185,7 +2224,7 @@
 					if(o.selectSingleNode(L"VATRates"))
 					{
 						xstring str1 = o.selectSingleNode(L"VATRates").text();
-						if(str1.find(L",L")) str1 = str1.left(str1.find(L",L"));
+						if(str1.find(L",")) str1 = str1.left(str1.find(L","));
 						dw_custom.SetItemString(i,L"VATRates",str1);
 					}
 					if(o.selectSingleNode(L"CustEName"))
@@ -2440,7 +2479,7 @@
 					if (o.selectSingleNode(L"VATRates"))
 					{
 						xstring str1 = o.selectSingleNode(L"VATRates").text();
-						if (str1.find(L",L")) str1 = str1.left(str1.find(L",L"));
+						if (str1.find(L",")) str1 = str1.left(str1.find(L","));
 						dw_custom.SetItemString(i, L"VATRates", str1);
 						dw_customex.SetItemString(i, L"VATRates", str1);
 					}
@@ -2615,7 +2654,7 @@
 					}
 					else if (SONos.find(SONo) < 0)
 					{
-						SONos += L",L" + SONo;
+						SONos += L"," + SONo;
 						costs += cost;
 					}
 				}
@@ -2625,7 +2664,7 @@
 					xstring CustomerPONo = t.selectSingleNode(L"CustomerPONo").text();
 					if (OrderNos == L"")
 						OrderNos = CustomerPONo;
-					else if (OrderNos.find(CustomerPONo) < 0) OrderNos += L",L" + CustomerPONo;
+					else if (OrderNos.find(CustomerPONo) < 0) OrderNos += L"," + CustomerPONo;
 				}
 
 				if (t.selectSingleNode(L"OperationTips"))
@@ -2650,6 +2689,11 @@
 				if (t.selectSingleNode(L"SalespersonID"))dw_base.SetItemString(1, L"SalespersonID", t.selectSingleNode(L"SalespersonID").text());
 				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());
@@ -2770,7 +2814,6 @@
 		arg.AddArg(L"CustomerID", dw_base.GetItemString(1, L"CustomerID"));
 		arg.AddArg(L"InvoiceNo", dw_base.GetItemString(1, L"InvoiceNo"));
 		arg.AddArg(L"SONo", dw_base.GetItemString(1, L""));
-		int p = arg;
 		if (dw_base.GetItemString(1, L"CustomerID") == L"")
 		{
 			OpenWindow(L"dev:xpage[SelectItem.New.GDN.vx]", arg);
@@ -2784,7 +2827,7 @@
 		}
 		else
 		{
-			OpenWindow(L"dev:xpage[select.gdnitem.so.vx]", p);
+			OpenWindow(L"dev:xpage[select.gdnitem.so.vx]", arg);
 		}
 
 		xstring str = arg.GetArgString(L"items");
@@ -2909,7 +2952,7 @@
 			}
 			else if (SONo_s.find(SONo) < 0)
 			{
-				SONo_s += L",L" + SONo;
+				SONo_s += L"," + SONo;
 			}
 			xstring PONo = dw_item.GetItemString(k, L"PONo");
 			if (PONo_s == L"")
@@ -2918,7 +2961,7 @@
 			}
 			else if (PONo_s.find(PONo) < 0)
 			{
-				PONo_s += L",L" + PONo;
+				PONo_s += L"," + PONo;
 			}
 		}
 		dw_base.SetItemString(1, L"OrderNos", PONo_s);
@@ -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();
@@ -4019,7 +4065,7 @@
 
 	int onload()
 	{
-
+		SetArg();
 		xstring  userid = publiccode::GetUser().id;
 		//trace(userid);
 		haveUpdate = true;
@@ -4130,7 +4176,7 @@
 		if (GetWinParam())
 		{
 			xaserverarg arg_param=GetArg();
-
+			xstring xs = arg_param.GetString();
 			InvoiceNo = arg_param.GetArgString(L"InvoiceNo");
 			if (InvoiceNo == L"") InvoiceNo = arg_param.GetArgString(L"EntityNo");
 			if (InvoiceNo == L"")

--
Gitblit v1.9.3