From 6a4764ee747fff45d89ef48f98873d6409e4f85e Mon Sep 17 00:00:00 2001
From: LiFan <2308045698@qq.com>
Date: 星期二, 16 七月 2024 17:22:23 +0800
Subject: [PATCH] update

---
 jrj/project/business/BasicCode/ForwarderMaint.cpp |  876 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 441 insertions(+), 435 deletions(-)

diff --git a/jrj/project/business/BasicCode/ForwarderMaint.cpp b/jrj/project/business/BasicCode/ForwarderMaint.cpp
index d34b7ee..6357734 100644
--- a/jrj/project/business/BasicCode/ForwarderMaint.cpp
+++ b/jrj/project/business/BasicCode/ForwarderMaint.cpp
@@ -1,461 +1,467 @@
-use "system.vl"
-use "win.vl"
-use "maint.vl"
-use "file.vl"
-use "dev:vm[xcell.vm]"
-unit vbusiness.entity
-[
-	ForwarderMaint is extend maint;
-	about ForwarderMaint
-	[
-		field:
-		[
-			msxml::IXMLDOMDocument m_configDoc;
+#include <wobject/xstring.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <wobject/xdouble.hpp>
+#include <xcontrol/xlayersheet.hpp>
 
-			xdwtable__ dw_base;
-			string m_userid;
-			string m_username;
-			string ContactID;
-			xcell__ dw_cell;				
-		]
-		
-		method:
-		[
-			int alert(string str)
+#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
+#include "viewobject/view.base.hpp"
+
+using xml = KXMLDOMDocument;
+class __declspec(dllexport) ForwarderMaint : public xframe
+{
+public:
+	KXMLDOMDocument m_configDoc;
+
+	xdwtable dw_base;
+	xstring m_userid;
+	xstring m_username;
+	xstring ContactID;
+	xcell dw_cell;
+
+public:
+	ForwarderMaint(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
+public:
+	static ForwarderMaint* CreateInstance(void* implPtr, void* hWnd)
+	{
+		ForwarderMaint* pWin = new ForwarderMaint(implPtr, (HWND)hWnd);
+		return pWin;
+	}
+	int alert(xstring str)
+	{
+		//win::MessageBox(GetHWND(),str,L"提示22:",0);
+		TApp::alert(this, str);
+		return 0;
+	}
+	int setCellReadOnly()
+	{
+		dw_base = new xdwtable;
+		dw_base.setNativePointer(GetControl(L"dw_base"));
+		dw_cell = new xcell;
+		dw_cell.setNativePointer(dw_base.QueryItem(L"ixcell"));
+		xstring strnew = L"<cellprop celltype='' cellformatex='' cellformat='' cellprotectex='' cellprotect='保护' cellvisibleex='' cellvisible='' cellvalid='' cellinitial=''/>";
+		//dw_cell.SetCellProps(2,2,strnew);			
+		return 0;
+	}
+
+	xstring GetGuid() {
+		return TApp::GetGuid();
+	}
+	int OnClear() {
+		if (m_EntityID == L"") {
+			trace(1);
+			m_userid = TApp::GetUserInfo().id;
+			m_username = TApp::GetUserInfo().name;
+			dw_base = new xdwtable;
+			dw_base.setNativePointer(GetControl(L"dw_base"));
+			dw_base.SetItemString(1, L"ForwarderID", GetGuid());
+			dw_base.SetItemString(1, L"PartyID", GetGuid());
+			dw_base.SetItemString(1, L"PStatus", L"1");
+			dw_base.SetItemDisplayString(1, L"PStatus", L"普通");
+			dw_base.SetItemString(1, L"CreatorID", m_userid);
+			dw_base.SetItemString(1, L"PADStatus", L"1");
+			dw_base.SetItemString(1, L"AddressID", GetGuid());
+			dw_base.SetItemString(1, L"PADIdentifyAddressFlag", L"Y");
+			dw_base.SetItemString(1, L"PADPrimaryFlag", L"Y");
+			//dw_base.SetItemString(1,L"BankAccountID",GetGuid());				
+			dw_base.SetItemString(1, L"Type", L"5");
+			dw_base.SetItemString(1, L"EnterName", m_userid);
+			dw_base.SetItemDisplayString(1, L"EnterName", m_username);
+			dw_base.SetItemString(1, L"CreateDate", TApp::GetCurDate());
+			/*xdwtable dw =  new xdwtable;
+			dw.setNativePointer(dw_base.GetCurTable());
+			xdwtable dwcon =  new xdwtable;
+			dwcon.setNativePointer(dw.FindDwTable(L"Contacters",0));
+			dwcon.SetItemString(1,L"ContactID",GetGuid());
+			dwcon.SetItemString(1,L"PCStatus",L"1");*/
+			//dw_base.SetItemString(1,L"EBankAccountID",GetGuid());	
+			//dw_base.SetItemString(1,L"CBankAccountID",GetGuid());
+			/*xdwtable dweon =  new xdwtable;
+			dweon.setNativePointer(dw_base.FindDwTable(L"item1",0));
+			xdwtable dwcon =  new xdwtable;
+			dwcon.setNativePointer(dw_base.FindDwTable(L"item2",0));
+			dweon.SetItemString(1,L"EPBAStatus",L"Y");
+			dwcon.SetItemString(1,L"CPBAStatus",L"Y");
+			dweon.SetItemString(1,L"ECurrencyCode",L"USD");
+			dwcon.SetItemString(1,L"CCurrencyCode",L"RMB");*/
+			dw_base.SetItemString(1, L"ForwarderType", L"1");
+			dw_base.SetItemDisplayString(1, L"ForwarderType", L"预付货");
+			//dw_base.SetItemString(1,L"PrimaryContactID",dwcon.GetItemString(1,L"ContactID"));	
+
+		}
+		else
+		{
+			setCellReadOnly();
+		}
+		return 0;
+	}
+
+	int OnAddrow()
+	{
+		dw_base = new xdwtable;
+		dw_base.setNativePointer(GetControl(L"dw_base"));
+		xdwtable dw = new xdwtable;
+		dw.setNativePointer(dw_base.GetCurTable());
+		xstring dw_n = dw.GetDwName();
+		if (dw_n == L"item")
+		{
+			dw.InsertRow(0);
+			int rows = dw.GetRowCount();
+			dw.SetRow(rows);
+		}
+		return 1;
+	}
+	int OnInsertRow()
+	{
+		dw_base = new xdwtable;
+		dw_base.setNativePointer(GetControl(L"dw_base"));
+		xdwtable dw = new xdwtable;
+		dw.setNativePointer(dw_base.GetCurTable());
+		xstring dw_n = dw.GetDwName();
+		if (dw_n == L"item")
+		{
+			int row = dw.GetRow();
+			if (row < 1) return 0;
+			dw.InsertRow(row);
+			dw.SetRow(row);
+		}
+		return 1;
+	}
+
+	int OnDeleteRow()
+	{
+		dw_base = new xdwtable;
+		dw_base.setNativePointer(GetControl(L"dw_base"));
+		xdwtable dw = new xdwtable;
+		dw.setNativePointer(dw_base.GetCurTable());
+		xstring dw_n = dw.GetDwName();
+		if (dw_n == L"item")
+		{
+			int row = dw.GetRow();
+			if (row < 1) return 0;
+			/*xstring del = dw.GetItemString(row,8);
+			if(del!=L"")
 			{
-				//win__::MessageBox(this.GetHWND(),str,"提示22:",0);
-				TApp::alert(this,str);
-				return 0;
-			}			
-			int setCellReadOnly()
-			{		
-				dw_base = new xdwtable__;
-				dw_base.setNativePointer(this.GetControl("dw_base"));			
-				dw_cell = new xcell__;
-				dw_cell.setNativePointer(dw_base.QueryItem("ixcell"));		
-				string strnew = "<cellprop celltype='' cellformatex='' cellformat='' cellprotectex='' cellprotect='保护' cellvisibleex='' cellvisible='' cellvalid='' cellinitial=''/>";
-				//dw_cell.SetCellProps(2,2,strnew);			
-				return 0;
-			}		
-			
-			string GetGuid(){
-				return TApp::GetGuid();			
-			}					
-			int OnClear(){
-				if(this.m_EntityID ==""){
-					trace(1);
-					m_userid = TApp::GetUserInfo().id;
-					m_username = TApp::GetUserInfo().name;						
-					dw_base = new xdwtable__;
-					dw_base.setNativePointer(this.GetControl("dw_base"));									
-					dw_base.SetItemString(1,"ForwarderID",GetGuid());		
-					dw_base.SetItemString(1,"PartyID",GetGuid());
-					dw_base.SetItemString(1,"PStatus","1");
-					dw_base.SetItemDisplayString(1,"PStatus","普通");					
-					dw_base.SetItemString(1,"CreatorID",m_userid);
-					dw_base.SetItemString(1,"PADStatus","1");					
-					dw_base.SetItemString(1,"AddressID",GetGuid());
-					dw_base.SetItemString(1,"PADIdentifyAddressFlag","Y");	
-					dw_base.SetItemString(1,"PADPrimaryFlag","Y");							
-					//dw_base.SetItemString(1,"BankAccountID",GetGuid());				
-					dw_base.SetItemString(1,"Type","5");					
-					dw_base.SetItemString(1,"EnterName",m_userid);
-					dw_base.SetItemDisplayString(1,"EnterName",m_username);				
-					dw_base.SetItemString(1,"CreateDate",TApp::GetCurDate());			
-					/*xdwtable__ dw =  new xdwtable__;
-					dw.setNativePointer(dw_base.GetCurTable());
-					xdwtable__ dwcon =  new xdwtable__;				
-					dwcon.setNativePointer(dw.FindDwTable("Contacters",0));
-					dwcon.SetItemString(1,"ContactID",GetGuid());
-					dwcon.SetItemString(1,"PCStatus","1");*/
-					//dw_base.SetItemString(1,"EBankAccountID",GetGuid());	
-					//dw_base.SetItemString(1,"CBankAccountID",GetGuid());
-					/*xdwtable__ dweon =  new xdwtable__;				
-					dweon.setNativePointer(dw_base.FindDwTable("item1",0));
-					xdwtable__ dwcon =  new xdwtable__;				
-					dwcon.setNativePointer(dw_base.FindDwTable("item2",0));							
-					dweon.SetItemString(1,"EPBAStatus","Y");
-					dwcon.SetItemString(1,"CPBAStatus","Y");
-					dweon.SetItemString(1,"ECurrencyCode","USD");
-					dwcon.SetItemString(1,"CCurrencyCode","RMB");*/
-					dw_base.SetItemString(1,"ForwarderType","1");
-					dw_base.SetItemDisplayString(1,"ForwarderType","预付货");					
-					//dw_base.SetItemString(1,"PrimaryContactID",dwcon.GetItemString(1,"ContactID"));	
-						
+				if(m_dels==L"")
+				{
+					m_dels=del;
 				}
 				else
 				{
-					setCellReadOnly();			
-				}					
-				return 0;
-			}					
+					xstring temp=m_dels;
+					m_dels=del + L"|" + temp;
+				//+= L"|"+del;
+				}
 
-			int OnAddrow()
-			{
-				dw_base = new xdwtable__;
-				dw_base.setNativePointer(this.GetControl("dw_base"));					
-				xdwtable__ dw =  new xdwtable__;
-				dw.setNativePointer(dw_base.GetCurTable());
-				string dw_n=dw.GetDwName();
-				if(dw_n=="item")
-				{	
-					dw.InsertRow(0);
-					int rows = dw.GetRowCount();
-					dw.SetRow(rows);						
-				}				
-				return 1;				
-			}
-			int OnInsertRow()
-			{
-				dw_base = new xdwtable__;
-				dw_base.setNativePointer(this.GetControl("dw_base"));						
-				xdwtable__ dw =  new xdwtable__;
-				dw.setNativePointer(dw_base.GetCurTable());
-				string dw_n=dw.GetDwName();
-				if(dw_n=="item")
-				{
-					int row=dw.GetRow();
-					if(row<1) return 0;					
-					dw.InsertRow(row);
-					dw.SetRow(row);								
-				}
-				return 1;
-			}
+			}*/
+			dw.DeleteRow(row);
+			dw.SetRow(row - 1);
+		}
+		//trace(m_dels);
+		return 1;
+	}
+	xstring getGoodsNo()
+	{
+		xml x;
 
-			int OnDeleteRow()
-			{
-				dw_base = new xdwtable__;
-				dw_base.setNativePointer(this.GetControl("dw_base"));						
-				xdwtable__ dw =  new xdwtable__;
-				dw.setNativePointer(dw_base.GetCurTable());
-				string dw_n=dw.GetDwName();
-				if(dw_n=="item")
-				{
-					int row=dw.GetRow();
-					if(row<1) return 0;
-					/*string del = dw.GetItemString(row,8);
-					if(del!="")
-					{
-						if(m_dels=="")
-						{	
-							m_dels=del;						
-						}		
-						else 
-						{	
-							string temp=m_dels;
-							m_dels=del + "|" + temp;
-						//+= "|"+del;						
-						}	
+		xaserverarg arg;
 
-					}*/				
-					dw.DeleteRow(row);	
-					dw.SetRow(row - 1);						
-				}
-					//trace(m_dels);
-				return 1;
-			}
-			string getGoodsNo()
+		if (getUrl(L"/sale/data/LogisticsCode/pref/PartyNo", arg.GetString(), x) != 1)
+		{
+			trace(x.xml());
+			return L"";
+		}
+		KXMLDOMElement e = x.documentElement();
+		if (e)
+		{
+			xstring code = e.text();
+			trace(code);
+			return L"F" + code;
+		}
+		return L"F1000";
+	}
+	int OnPreSave()
+	{
+		dw_base.AcceptText();
+		dw_base = new xdwtable;
+		dw_base.setNativePointer(GetControl(L"dw_base"));
+		xstring ForwarderNo = dw_base.GetItemString(1, L"ForwarderNo");
+		if (ForwarderNo == L"")
+		{
+			dw_base.SetItemString(1, L"ForwarderNo", getGoodsNo());
+		}
+		xdwtable dwcon = new xdwtable;
+		dwcon.setNativePointer(dw_base.FindDwTable(L"item", 0));
+		int i;
+		for (i = 1; i <= dwcon.GetRowCount(); i++)
+		{
+			xstring aTemp;
+			xstring aName = dwcon.GetItemString(i, L"ContacterName");
+			trace(aName);
+			if (aName == L"")
 			{
-				xml__ x=new xml__;
-				x.setNativePointer(xml__::CreateInstance());
-				xaserverarg__ arg=new xaserverarg__;
-				arg.setNativePointer(arg.CreateInstance());	
-				if (getUrl("/sale/data/LogisticsCode/pref/PartyNo",arg.GetString(),x) != 1)
+				aTemp = dwcon.GetItemString(i, L"Mobile") + dwcon.GetItemString(i, L"TEL") + dwcon.GetItemString(i, L"Fax") + dwcon.GetItemString(i, L"Email") + dwcon.GetItemString(i, L"PCRemark") + dwcon.GetItemString(i, L"fz");
+				trace(aTemp);
+				if (aTemp != L"")
 				{
-					trace(x.GetXml());
-					return "";
-				}			
-				msxml::IXMLDOMElement e = x.GetXmlDoc().documentElement;
-				if(e)
-				{
-					string code = e.text;
-				trace(code);
-					return "F"+code;
-				}
-				return "F1000";
-			}			
-			int OnPreSave()
-			{	
-				dw_base.AcceptText();					
-				dw_base = new xdwtable__;
-				dw_base.setNativePointer(this.GetControl("dw_base"));
-				string ForwarderNo = dw_base.GetItemString(1,"ForwarderNo",0);
-				if (ForwarderNo=="" || ForwarderNo== nil) 
-					{
-					dw_base.SetItemString(1,"ForwarderNo",getGoodsNo());			
-				}				
-				xdwtable__ dwcon =  new xdwtable__;				
-				dwcon.setNativePointer(dw_base.FindDwTable("item",0));
-				int i;				
-				for(i=1;i<=dwcon.GetRowCount();i++)
-				{
-					string aTemp;				
-					string aName = dwcon.GetItemString(i,"ContacterName",0);
-					trace(aName);
-					if (aName=="" || aName== nil)
-					{
-						aTemp=dwcon.GetItemString(i,"Mobile",0)+dwcon.GetItemString(i,"TEL",0)+dwcon.GetItemString(i,"Fax",0)+dwcon.GetItemString(i,"Email",0)+dwcon.GetItemString(i,"PCRemark",0)+dwcon.GetItemString(i,"fz",0);	
-						trace(aTemp);
-						if(aTemp !="" && aTemp != nil)
-						{
-							alert("联系人名称必填!");
-							return -1;
-						}
-					}
-					else{
-							string ContactID = dwcon.GetItemString(i,"ContactID",0);
-							if (ContactID=="" || ContactID== nil)					
-							{	
-								dwcon.SetItemString(i,"ContactID",GetGuid());
-								dwcon.SetItemString(i,"PCStatus","Y");					
-								dw_base.SetItemString(1,"PrimaryContactID",dwcon.GetItemString(1,"ContactID"));								
-							}							
-					}
-				}
-				xdwtable__ dwcon2 =  new xdwtable__;				
-				dwcon2.setNativePointer(dw_base.FindDwTable("item2",0));
-				int k;
-				for (k=1;k <= dwcon2.GetRowCount();k++)
-				{
-					string sPBABankName2 = dwcon2.GetItemString(k,"CBank");
-					string sPBABankAccountNo2 = dwcon2.GetItemString(k,"CBankNo");
-					if (sPBABankName2 == nil) sPBABankName2 = "";
-					if (sPBABankAccountNo2 == nil) sPBABankAccountNo2 = "";
-					string sPBAAll2 = sPBABankName2 + sPBABankAccountNo2;
-						
-					if (sPBAAll2 != "")
-					{
-						if (sPBABankName2 == "")
-						{
-							alert("人民币银行名称不能为空");
-							return -1;
-						}
-						if (sPBABankAccountNo2 == "")
-						{
-							alert("人民币银行账户不能为空");
-							return -1;
-						}
-						dwcon2.SetItemString(k,"CPBAStatus","Y");
-						dwcon2.SetItemString(k,"CCurrencyCode","RMB");
-						dwcon2.SetItemString(k,"CBankAccountID",GetGuid());
-						
-						if(dwcon2.GetItemString(k,"CBankAccountID")!="" && this.m_EntityID =="")
-						{							
-							dw_base.SetItemString(1,"CBkAccountID",dwcon2.GetItemString(k,"CBankAccountID"));
-						}
-					}
-				}
-				xdwtable__  dwcon1 =  new xdwtable__;				
-				dwcon1.setNativePointer(dw_base.FindDwTable("item1",0));
-				int j;
-				for (j=1;j <= dwcon1.GetRowCount();j++)
-				{
-					string sPBABankName1 = dwcon1.GetItemString(j,"EBank");
-					string sPBABankAccountNo1 = dwcon1.GetItemString(j,"EBankNo");
-					if (sPBABankName1 == nil) sPBABankName1 = "";
-					if (sPBABankAccountNo1 == nil) sPBABankAccountNo1 = "";
-					string sPBAAll1 = sPBABankName1 + sPBABankAccountNo1;
-					if (sPBAAll1 != "")
-					{
-						if (sPBABankName1 == "")
-						{
-							alert("美金银行名称不能为空");
-							return -1;
-						}
-						if (sPBABankAccountNo1 == "")
-						{
-							alert("美金银行账户不能为空");
-							return -1;
-						}
-						dwcon1.SetItemString(j,"EPBAStatus","Y");
-						dwcon1.SetItemString(j,"ECurrencyCode","USD");
-						dwcon1.SetItemString(j,"EBankAccountID",GetGuid());
-						if(dwcon1.GetItemString(j,"EBankAccountID")!="" && this.m_EntityID =="")
-						{	
-							dw_base.SetItemString(1,"EBkAccountID",dwcon1.GetItemString(j,"EBankAccountID"));
-						}						
-					}
-				}
-				return 1;					
-			}
-			int OnPostSave()
-			{	
-				dw_base = new xdwtable__;
-				dw_base.setNativePointer(this.GetControl("dw_base"));						
-				xaserverarg__ args = new xaserverarg__;
-				args.setNativePointer(args.CreateInstance());					
-				xml__ x = new xml__;
-				x.setNativePointer(xml__::CreateInstance());
-				dw_base.DwUpdateAllTo(x.GetXmlDoc());
-				//trace(x.GetXml());
-	
-				//主联系人
-				string spGuid;
-				msxml::IXMLDOMElement e;
-				var list = x.GetXmlDoc().selectNodes("//item");
-				int nlen = list.length;
-				int i;
-				for(i=0;	i<nlen;	i++)
-				{
-					e = list.item(i);
-					if (i == 0) spGuid = e.selectSingleNode("@guid").text;
-					string sP = e.selectSingleNode("PPrimaryFlag").text;
-					if (sP == "Y")
-					{	
-						spGuid = e.selectSingleNode("@guid").text;
-						break;
-					}
-				}
-				if (spGuid == "" || spGuid == nil)	
-				{
-					trace("error");
-					return 0;
-				}
-				args.AddArg("contact",spGuid);
-				//trace("<---->");
-				//trace(spGuid);
-				xml__ x1 = new xml__;
-				x1.setNativePointer(x1.CreateInstance());
-				if (getUrl("/sale/data/SupplierSubmit/pref/primarycontact",args.GetString(),x) != 1)
-				{
-					string error = x1.GetXmlDoc().text;
-					trace(error);
-					return 0;
-				}
-				
-				
-				return 1;
-			}						
-			int OnSave()
-			{
-				dw_base = new xdwtable__;
-				dw_base.setNativePointer(this.GetControl("dw_base"));							
-				string SName = dw_base.GetItemString(1,"Name");
-				if(SName==""){
-					alert("请输入货代名称!");
+					alert(L"联系人名称必填!");
 					return -1;
 				}
-				int rec =OnPreSave();
-				if (rec== -1)	return -1;						
-				xml__ x=new xml__;
-				x.setNativePointer(xml__::CreateInstance());
-				dw_base.DwUpdateAllTo(x.GetXmlDoc()); 
-				trace(x.GetXml());
-				xaserverarg__ arg=new xaserverarg__;
-				arg.setNativePointer(arg.CreateInstance());	
-				arg.AddArg("content",x.GetXml());						
-				arg.AddArg("dbmap","Forwarder.dbmap");
-				//arg.AddArg("m_dels",m_dels);				
-				if (getUrl("/sale/data/LogisticsCode/entity/save",arg.GetString(),x) != 1)
+			}
+			else {
+				xstring ContactID = dwcon.GetItemString(i, L"ContactID");
+				if (ContactID == L"")
 				{
-					trace("error:"+x.GetXml());
-					alert("保存失败!");
-					return 0;
-				}						
-				else
-				{	
-					trace(x.GetXml());
-					if(x.GetXmlDoc().selectSingleNode("error"))
-					{
-						alert("保存出错2!");
-						return 0;				
-					}
-					alert("保存成功!");	
-					dw_base.ResetUpdateStatus();
-					OnPostSave();						
+					dwcon.SetItemString(i, L"ContactID", GetGuid());
+					dwcon.SetItemString(i, L"PCStatus", L"Y");
+					dw_base.SetItemString(1, L"PrimaryContactID", dwcon.GetItemString(1, L"ContactID"));
 				}
-				dw_base.Redraw();
-				//m_dels="";				
-				return 0;
-			}					
-			int OnCmdDispatch(string comdid)
+			}
+		}
+		xdwtable dwcon2 = new xdwtable;
+		dwcon2.setNativePointer(dw_base.FindDwTable(L"item2", 0));
+		int k;
+		xstring sPBABankName2 = L"";
+		xstring sPBABankAccountNo2 = L"";
+		for (k = 1; k <= dwcon2.GetRowCount(); k++)
+		{
+			sPBABankName2 = dwcon2.GetItemString(k, L"CBank");
+			sPBABankAccountNo2 = dwcon2.GetItemString(k, L"CBankNo");
+
+			xstring sPBAAll2 = sPBABankName2 + sPBABankAccountNo2;
+
+			if (sPBAAll2 != L"")
 			{
-				if(comdid.find("action:bill.row.add",0)>=0) {
-					OnAddrow();
+				if (sPBABankName2 == L"")
+				{
+					alert(L"人民币银行名称不能为空");
+					return -1;
 				}
-				else if(comdid.find("bill.row.insert",0)>=0) {
-					OnInsertRow(); 							
+				if (sPBABankAccountNo2 == L"")
+				{
+					alert(L"人民币银行账户不能为空");
+					return -1;
 				}
-				else if(comdid.find("bill.row.delete",0)>=0) {
-					OnDeleteRow();
+				dwcon2.SetItemString(k, L"CPBAStatus", L"Y");
+				dwcon2.SetItemString(k, L"CCurrencyCode", L"RMB");
+				dwcon2.SetItemString(k, L"CBankAccountID", GetGuid());
+
+				if (dwcon2.GetItemString(k, L"CBankAccountID") != L"" && m_EntityID == L"")
+				{
+					dw_base.SetItemString(1, L"CBkAccountID", dwcon2.GetItemString(k, L"CBankAccountID"));
 				}
-				else if(comdid.find("bill.save",0)>=0) {					
-					trace(1);
-					OnSave();
-				}					
+			}
+		}
+		xdwtable  dwcon1 = new xdwtable;
+		dwcon1.setNativePointer(dw_base.FindDwTable(L"item1", 0));
+		int j;
+		xstring sPBABankName1 = L"";
+		xstring sPBABankAccountNo1 = L"";
+		for (j = 1; j <= dwcon1.GetRowCount(); j++)
+		{
+			xstring sPBABankName1 = dwcon1.GetItemString(j, L"EBank");
+			xstring sPBABankAccountNo1 = dwcon1.GetItemString(j, L"EBankNo");
+
+			xstring sPBAAll1 = sPBABankName1 + sPBABankAccountNo1;
+			if (sPBAAll1 != L"")
+			{
+				if (sPBABankName1 == L"")
+				{
+					alert(L"美金银行名称不能为空");
+					return -1;
+				}
+				if (sPBABankAccountNo1 == L"")
+				{
+					alert(L"美金银行账户不能为空");
+					return -1;
+				}
+				dwcon1.SetItemString(j, L"EPBAStatus", L"Y");
+				dwcon1.SetItemString(j, L"ECurrencyCode", L"USD");
+				dwcon1.SetItemString(j, L"EBankAccountID", GetGuid());
+				if (dwcon1.GetItemString(j, L"EBankAccountID") != L"" && m_EntityID == L"")
+				{
+					dw_base.SetItemString(1, L"EBkAccountID", dwcon1.GetItemString(j, L"EBankAccountID"));
+				}
+			}
+		}
+		return 1;
+	}
+	int OnPostSave()
+	{
+		dw_base = new xdwtable;
+		dw_base.setNativePointer(GetControl(L"dw_base"));
+		xaserverarg args;
+
+		xml x;
+
+		dw_base.DwUpdateAllTo(x);
+		//trace(x.xml());
+
+		//主联系人
+		xstring spGuid;
+		KXMLDOMElement e;
+		var list = x.selectNodes(L"//item");
+		int nlen = list.length;
+		int i;
+		for (i = 0; i < nlen; i++)
+		{
+			e = list.item(i);
+			if (i == 0) spGuid = e.selectSingleNode(L"@guid").text();
+			xstring sP = e.selectSingleNode(L"PPrimaryFlag").text();
+			if (sP == L"Y")
+			{
+				spGuid = e.selectSingleNode(L"@guid").text();
+				break;
+			}
+		}
+		if (spGuid == L"")
+		{
+			trace(L"error");
+			return 0;
+		}
+		args.AddArg(L"contact", spGuid);
+		//trace(L"<---->");
+		//trace(spGuid);
+		xml x1;
+
+		if (getUrl(L"/sale/data/SupplierSubmit/pref/primarycontact", args.GetString(), x) != 1)
+		{
+			xstring error = x1.text();
+			trace(error);
+			return 0;
+		}
+
+
+		return 1;
+	}
+	int OnSave()
+	{
+		dw_base = new xdwtable;
+		dw_base.setNativePointer(GetControl(L"dw_base"));
+		xstring SName = dw_base.GetItemString(1, L"Name");
+		if (SName == L"") {
+			alert(L"请输入货代名称!");
+			return -1;
+		}
+		int rec = OnPreSave();
+		if (rec == -1)	return -1;
+		xml x;
+
+		dw_base.DwUpdateAllTo(x);
+		trace(x.xml());
+		xaserverarg arg;
+
+		arg.AddArg(L"content", x.xml());
+		arg.AddArg(L"dbmap", L"Forwarder.dbmap");
+		//arg.AddArg(L"m_dels",m_dels);				
+		if (getUrl(L"/sale/data/LogisticsCode/entity/save", arg.GetString(), x) != 1)
+		{
+			trace(L"error:" + (xstring)x.xml());
+			alert(L"保存失败!");
+			return 0;
+		}
+		else
+		{
+			trace(x.xml());
+			if (x.selectSingleNode(L"error"))
+			{
+				alert(L"保存出错2!");
+				return 0;
+			}
+			alert(L"保存成功!");
+			dw_base.ResetUpdateStatus();
+			OnPostSave();
+		}
+		dw_base.Redraw();
+		//m_dels=L"";				
+		return 0;
+	}
+	int OnCmdDispatch(xstring comdid)
+	{
+		if (comdid.find(L"action:bill.row.add", 0) >= 0) {
+			OnAddrow();
+		}
+		else if (comdid.find(L"bill.row.insert", 0) >= 0) {
+			OnInsertRow();
+		}
+		else if (comdid.find(L"bill.row.delete", 0) >= 0) {
+			OnDeleteRow();
+		}
+		else if (comdid.find(L"bill.save", 0) >= 0) {
+			//trace(1);
+			OnSave();
+		}
+		return 0;
+	}
+
+	int OnXCommand(TEvent* evt, LPARAM param)
+	{
+		return OnCmdDispatch(evt->xcommand.pStrID);
+	}
+	int OnCellChanged(TEvent* evt, LPARAM p)
+	{
+		dw_base = new xdwtable;
+		dw_base.setNativePointer(GetControl(L"dw_base"));
+		DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
+		xstring colname = hdr.colname;
+		xstring coldata = hdr.data;
+		trace(colname);
+		if (colname == L"ForwarderNo")
+		{
+			xstring cspec = dw_base.GetItemString(1, 1);
+			trace(cspec);
+			xstring SpecRule = L"^\\d*$";
+			xaserverarg args;
+
+			args.AddArg(L"CSpec", cspec);
+			args.AddArg(L"SpecRule", SpecRule);
+			xml  x;
+
+			getUrl(L"/sale/data/LogisticsCode/pref/forwarderno/check", args.GetString(), x);
+
+			if (x.selectSingleNode(L"root/spec"))
+			{
+				alert(L"请输入数字!");
 				return 0;
 			}
 
-			int OnXCommand(ref TXCommandEvent evt,int p)
+		}
+		//只能选一个主联系人
+		else if (colname == L"PPrimaryFlag" && coldata == L"Y")
+		{
+			xdwtable dw_pc;
+			dw_pc = new xdwtable;
+			dw_pc.setNativePointer(dw_base.FindDwTable(L"item"));
+			if (dw_pc)
 			{
-				return OnCmdDispatch(evt.pStrID);
-			}
-			int OnCellChanged(ref TNotifyEvent evt,int p)
-			{
-				dw_base = new xdwtable__;
-				dw_base.setNativePointer(this.GetControl("dw_base"));						
-				ref DWNMHDR  hdr = evt.pnmh;
-				string colname=hdr.colname;
-				string coldata = hdr.data;							
-				trace(colname);
-				if(colname=="ForwarderNo")
+				int i;
+				for (i = 1; i <= dw_pc.GetRowCount(); i++)
 				{
-					string cspec = dw_base.GetItemString(1,1);
-					trace(cspec);
-					string SpecRule="^\\d*$";
-					xaserverarg__ args = new xaserverarg__;
-					args.setNativePointer(args.CreateInstance());
-					args.AddArg("CSpec",cspec);
-					args.AddArg("SpecRule",SpecRule);
-					xml__  x= new xml__;
-					x.setNativePointer(xml__::CreateInstance());
-					getUrl("/sale/data/LogisticsCode/pref/forwarderno/check",args.GetString(),x);
-			
-					if(x.GetXmlDoc().selectSingleNode("root/spec"))
-					{  
-						alert("请输入数字!");
-						return 0;
-					}
-					
+					if (i != hdr.row)
+						dw_pc.SetItemString(i, L"PPrimaryFlag", L"N");
 				}
-					//只能选一个主联系人
-				else if (colname == "PPrimaryFlag" && coldata == "Y")
-				{
-					xdwtable__ dw_pc;
-					dw_pc = new xdwtable__;
-					dw_pc.setNativePointer(dw_base.FindDwTable("item"));
-					if (dw_pc)
-					{
-						int i;
-						for (i=1;i <= dw_pc.GetRowCount();i++)
-						{
-							if (i != hdr.row)
-								dw_pc.SetItemString(i,"PPrimaryFlag","N");
-						}
-					}
-				}				
-				return 1;
-			}			
-			int OnAttachEvent()
-			{
-				AttachEvent("WM_XCOMMAND",OnXCommand);
-				//AttachEvent("WM_SETFOCUS",OnSetFocus);
-				AttachEvent("dw_base","DWV_ITEMCHANGED",OnCellChanged);				
-				return 0;
-			}				
-			int onload()
-			{			
-				dw_base = new xdwtable__;
-				dw_base.setNativePointer(this.GetControl("dw_base"));			
-								
-				OnAttachEvent();								
-				//if(!m_configDoc) return -1;
-
-				maint::onload();		
-
-				OnClear();						
 			}
+		}
+		return 1;
+	}
+	int OnAttachEvent()
+	{
+		AttachEvent(L"WM_XCOMMAND", (FEvent)&ForwarderMaint::OnXCommand);
+		//AttachEvent(L"WM_SETFOCUS",OnSetFocus);
+		AttachEvent(L"dw_base", L"DWV_ITEMCHANGED", (FEvent)&ForwarderMaint::OnCellChanged);
+		return 1;
+	}
+	int onload()
+	{
+		dw_base = new xdwtable;
+		dw_base.setNativePointer(GetControl(L"dw_base"));
 
-		]
-	]
-]
\ No newline at end of file
+		OnAttachEvent();
+		//if(!m_configDoc) return -1;
+
+		maint::onload();
+
+		OnClear();
+	}
+
+};
\ No newline at end of file

--
Gitblit v1.9.3