From 7a91c3a1ed37b0332d4ff0ebeae60bd6da3665c0 Mon Sep 17 00:00:00 2001
From: xj qian <qianxj15@sina.com>
Date: 星期二, 16 七月 2024 18:28:58 +0800
Subject: [PATCH] Merge branch 'master' of http://116.62.18.175:6699/r/mis-prj

---
 jrj/project/business/BasicCode/ShipcompanyMaint.cpp |  320 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 320 insertions(+), 0 deletions(-)

diff --git a/jrj/project/business/BasicCode/ShipcompanyMaint.cpp b/jrj/project/business/BasicCode/ShipcompanyMaint.cpp
new file mode 100644
index 0000000..1d88656
--- /dev/null
+++ b/jrj/project/business/BasicCode/ShipcompanyMaint.cpp
@@ -0,0 +1,320 @@
+#include <wobject/xstring.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <wobject/xdouble.hpp>
+#include <xcontrol/xlayersheet.hpp>
+
+#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
+#include "viewobject/view.base.hpp"
+
+using xml = KXMLDOMDocument;
+class __declspec(dllexport) ShipcompanyMaint : public xframe
+{
+public:
+	KXMLDOMDocument m_configDoc;
+	xstring m_userid;
+	xstring m_username;
+	xstring ContactID;
+	xdwtable dw_base;
+	xcell dw_cell;
+public:
+	ShipcompanyMaint(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
+public:
+	static ShipcompanyMaint* CreateInstance(void* implPtr, void* hWnd)
+	{
+		ShipcompanyMaint* pWin = new ShipcompanyMaint(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;
+	}
+	int OnSetFocus(TEvent* evt, LPARAM p)
+	{
+		SetAgent(L"maint");
+		return 1;
+	}
+	xstring GetGuid() 
+	{
+		return publiccode::GetGuid();
+	}
+	int OnClear() {
+		if (m_EntityID == L"") {
+			m_userid = publiccode::GetUser().id;
+			m_username = publiccode::GetUser().name;
+			dw_base = new xdwtable;
+			dw_base.setNativePointer(GetControl(L"dw_base"));
+			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"Type", L"6");
+			dw_base.SetItemString(1, L"AddressID", GetGuid());
+			dw_base.SetItemString(1, L"PADIdentifyAddressFlag", L"Y");
+			dw_base.SetItemString(1, L"PrimaryFlag", L"Y");
+			dw_base.SetItemString(1, L"EnterName", m_userid);
+			dw_base.SetItemDisplayString(1, L"EnterName", m_username);
+			dw_base.SetItemString(1, L"CreateDate", publiccode::GetCurrentDate());
+		}
+		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"")
+			{
+				if(m_dels==L"")
+				{
+					m_dels=del;
+				}
+				else
+				{
+					xstring temp=m_dels;
+					m_dels=del + L"|" + temp;
+				//+= L"|"+del;
+				}
+
+			}*/
+			dw.DeleteRow(row);
+			dw.SetRow(row - 1);
+		}
+		return 1;
+	}
+	xstring getGoodsNo()
+	{
+		xml x;
+
+		xaserverarg arg;
+
+		if (getUrl(L"/sale/data/LogisticsCode/pref/shipcompany/PartyNo", arg.GetString(), x) != 1)
+		{
+			trace(x.xml());
+			return L"";
+		}
+		KXMLDOMElement e = x.documentElement();
+		if (e)
+		{
+			xstring code = e.text();
+			trace(code);
+			return L"P" + code;
+		}
+		return  L"P1000";
+	}
+	int OnPreSave()
+	{
+		dw_base.AcceptText();
+		dw_base = new xdwtable;
+		dw_base.setNativePointer(GetControl(L"dw_base"));
+		xstring ShipNo = dw_base.GetItemString(1, L"ShipNo");
+		if (ShipNo == L"")
+		{
+			dw_base.SetItemString(1, L"ShipNo", 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"")
+			{
+				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");
+				trace(aTemp);
+				if (aTemp != L"")
+				{
+					alert(L"联系人名称必填!");
+					return -1;
+				}
+			}
+			else {
+				xstring ContactID = dwcon.GetItemString(i, L"ContactID");
+				if (ContactID == L"")
+				{
+					dwcon.SetItemString(i, L"ContactID", GetGuid());
+					dwcon.SetItemString(i, L"PCStatus", L"1");
+					dw_base.SetItemString(1, L"PrimaryContactID", dwcon.GetItemString(1, L"ContactID"));
+				}
+
+
+
+			}
+		}
+		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"Shipcompany.dbmap");
+		//arg.AddArg(L"m_dels",m_dels);	
+
+		if (getUrl(L"/sale/data/LogisticsCode/entity/shipcompany/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();
+			setCellReadOnly();
+		}
+		dw_base.Redraw();
+		//m_dels=L"";				
+		return 0;
+	}
+	int OnCmdDispatch(xstring comdid)
+	{
+		trace(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);
+			dw_base.AcceptText();
+			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;
+		//trace(colname);
+		if (colname == L"ShipNo")
+		{
+			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;
+			}
+
+		}
+		return 1;
+	}
+	int OnAttachEvent()
+	{
+		AttachEvent(L"WM_XCOMMAND", (FEvent)&ShipcompanyMaint::OnXCommand);
+		AttachEvent(L"WM_SETFOCUS", (FEvent)&ShipcompanyMaint::OnSetFocus);
+		AttachEvent(L"dw_base", L"DWV_ITEMCHANGED", (FEvent)&ShipcompanyMaint::OnCellChanged);
+		return 1;
+	}
+
+	int onload()
+	{
+
+		OnAttachEvent();
+		//if(!m_configDoc) return -1;
+
+		maint::onload();
+
+		OnClear();
+
+	}
+};
\ No newline at end of file

--
Gitblit v1.9.3