þÿ#include <wobject/xstring.hpp> #include <xcontrol/xtreeview.hpp> #include <xcontrol/xdwgrid.hpp> #include <xcontrol/xlayersheet.hpp> #include "vbusiness/vframe/maint.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) maintexOwnerSupplierv3 : public maint { public: xdwtable dw_base; xdwtable dw_kpinfo; xdwtable dw_basegy; xdwgrid dw_supgoods; xlayersheet m_layer; xlayersheet xsheet; //xstring xpage; xstring m_diffstr; //vcontrol vc; xnode m_agentNode; public: maintexOwnerSupplierv3(void* implPtr, HWND hWnd) :maint(implPtr, hWnd) {} public: static maintexOwnerSupplierv3* CreateInstance(void* implPtr, void* hWnd) { maintexOwnerSupplierv3* pWin = new maintexOwnerSupplierv3(implPtr, (HWND)hWnd); return pWin; } int SetAgent(xstring scene, xstring EntityID) { xstring xfNodeAgentArea = L"agentarea"; xnode anode = GetAgentNode(xfNodeAgentArea); if (m_agentNode) { SetAgentNode(anode, m_agentNode); } else { KXMLDOMElement xframeElement = GetElement(); KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*"); if (agent) { xstring s = agent.xml(); m_agentNode = SetAgentNode(anode, s); } } return 1; } xstring str_replace(xstring s, xstring a, xstring b, int k) { int i = s.find(a, k); if (i > -1) { xstring tmp; if (i == 0) tmp = b + s.mid(i + a.length(), s.length()); else if (i + a.length() == s.length()) tmp = s.mid(0, i) + b; else tmp = s.mid(0, i) + b + s.mid(i + a.length(), s.length()); str_replace(tmp, a, b, i + b.length() + 1); } else return L"" + s; } xstring str_replace(xstring s, xstring a, xstring b) { return str_replace(s, a, b); } int SetAttributeByxml(xml x, xstring nodename, xstring action, xstring status) { KXMLDOMElement e; KXMLDOMNodeList nlist = x.selectNodes(L"//" + nodename + L""); if (nlist) { int nlen = nlist.length(); int i; for (i = 0; i < nlen; i++) { e = nlist.item(i); //alert(e.xml()); e.setAttribute(action, status); //alert(e.xml()); } } return 1; } int SetAttributeByaddress(xml x, xstring nodename, xstring action, xstring status) { KXMLDOMElement e; KXMLDOMNodeList nlist = x.selectNodes(L"//" + nodename + L""); if (nlist) { int nlen = nlist.length(); int i; for (i = 0; i < nlen; i++) { e = nlist.item(i); //alert(e.xml()); e.setAttribute(action, status); //alert(e.xml()); } } return 1; } int OnPreSave() { dw_base.AcceptText(); dw_kpinfo.AcceptText(); //xdwtable__ dw_base = new xdwtable__; //dw_base.setNativePointer(GetControl(L"dw_base")); xdwtable dw = dw_base.FindDwTable(L"Supplier"); xstring sStatus = dw.GetItemString(1, L"Status"); int slen = sStatus.length(); if (slen > 1) { alert(L"O›^”UFr¶`“Qeg ‹ïÿ"); return -1; } xstring sPartyNo = dw.GetItemString(1, L"PartyNo"); if (sPartyNo == L"") { //sPartyNo = publiccode::GetIdentityNo(L"Party2"); sPartyNo = publiccode::GetIdentityNo(L"Party2"); dw.SetItemString(1, L"PartyNo", sPartyNo); //alert(L"O›^”UFS÷N:zzÿ"); //return -1; } xstring ShortName = dw.GetItemString(1, L"ShortName"); if (ShortName.rtrim() == L"") { alert(L"O›^”UF{€yðN:zzÿ"); return 1; } xstring YearEstablished = dw_base.GetItemString(1, L"YearEstablished"); if (YearEstablished.rtrim() == L"") { alert(L"bzËeö•ôN:zzÿ"); return -1; } xstring LegalPerson = dw_base.GetItemString(1, L"LegalPerson"); if (LegalPerson.rtrim() == L"") { alert(L"lÕNºNãˆhN:zzÿ"); return -1; } xstring ThirdPartyReport = dw_base.GetItemString(1, L"ThirdPartyReport"); if (ThirdPartyReport.rtrim() == L"") { alert(L"šŒS‚b¥TJN:zzÿ"); return -1; } xstring SupplierSource = dw_base.GetItemString(1, L"SupplierSource"); if (SupplierSource.rtrim() == L"") { alert(L"O›^”UFgenN:zzÿ"); return -1; } xstring Address = dw_base.GetItemString(1, L"ThirdPartyReport"); if (Address.rtrim() == L"") { alert(L"O›^”UFW0W@N:zzÿ"); return -1; } xstring bAddress = dw_base.GetItemString(1, L"bAddress"); if (bAddress.rtrim() == L"") { alert(L"[ÄNöW0W@N:zzÿ"); return -1; } xstring sName = dw.GetItemString(1, L"Name") + L""; sName.rtrim(); //sName = str_replace(sName,L" ",L""); if (sName == L"") { alert(L"O›^”UFT yðN:zzÿ"); return -1; } else { xaserverarg arg ;; arg.AddArg(L"stype", L"Party2"); arg.AddArg(L"svalue", sName); xml x ; KXMLDOMDocument xdoc = x; dw_base.DwUpdateAllTo(xdoc); //KXMLDOMElement e= x.documentElement; //var n = x.selectSingleNode(L"Supplier[@update.new='1']"); //if (n) if (!maint::m_EntityID) { arg.AddArg(L"operate", L"update.new"); } else { arg.AddArg(L"operate", L"update.modify"); } xstring sguid = x.selectSingleNode(L"Supplier/@guid").text(); arg.AddArg(L"sguid", sguid); //alert(sguid,L"->",maint::m_EntityID); bool lbRepeated = publiccode::IsRepeated(arg); if (lbRepeated) { alert(L"O›^”UFT yðg ‘ÍY ÿ"); return -1; } } /*dw = dw_basegy.FindDwTable(L"Supplier",0); xstring suserid = xaserver::GetUserId();//publiccode::GetUserInfo().id; xstring susername = publiccode::GetUser(suserid).name; xstring sdate = publiccode::GetCurrentDate(); dw.SetItemString(1,L"ModifierID",suserid);//Party dw.SetItemDisplayString(1,L"ModifierID",susername);//Party dw.SetItemString(1,L"ModifyDate",sdate);*/ int i; dw = dw_base.FindDwTable(L"item"); for (i = 1; i <= dw.GetRowCount(); i++) { xstring aTemp; xstring aName = dw.GetItemString(i, L"Name"); if (aName == L"") { aTemp = dw.GetItemString(i, L"JobTitle") + dw.GetItemString(i, L"Gender") + dw.GetItemString(i, L"Mobile") + dw.GetItemString(i, L"TEL") + dw.GetItemString(i, L"Email") + dw.GetItemString(i, L"IM") + dw.GetItemString(i, L"Remark"); if (aTemp != L"") { alert(L"€T|ûNºT yð_ÅXkÿ"); return -1; } } else { xstring aStatus; aStatus = dw.GetItemString(i, L"Status"); if (aStatus == L"") { dw.SetItemString(i, L"Status", L"1"); } } } /*dw.setNativePointer(dw_base.FindDwTable(L"item2",0)); for(i=1;i<=dw.GetRowCount();i++) { xstring bTemp; bTemp=dw.GetItemString(i,L"AddressName",0)+dw.GetItemString(i,L"Address",0); if(bTemp !=L"" && bTemp != nil) { if (dw.GetItemString(i,L"Status",0)==L"" || dw.GetItemString(i,L"Status",0)==nil) dw.SetItemString(i,L"Status",L"1"); if (dw.GetItemString(i,L"IdentifyAddressFlag",0)==L"" || dw.GetItemString(i,L"IdentifyAddressFlag",0)==nil) dw.SetItemString(i,L"IdentifyAddressFlag",L"N"); if (dw.GetItemString(i,L"PrimaryFlag",0)==L"" || dw.GetItemString(i,L"PrimaryFlag",0)==nil) dw.SetItemString(i,L"PrimaryFlag",L"N"); } }*/ dw = dw_kpinfo.FindDwTable(L"item3"); for (i = 1; i <= dw.GetRowCount(); i++) { xstring cTemp; xstring cName = dw.GetItemString(i, L"BankName"); if (cName == L"") { cTemp = dw.GetItemString(i, L"BankAccountNo") + dw.GetItemString(i, L"City"); if (cTemp != L"") { alert(L"”öˆLT yð_ÅXkÿ"); return -1; } } cName = dw.GetItemString(i, L"BankAccountNo"); if (cName == L"") { cTemp = dw.GetItemString(i, L"BankName") + dw.GetItemString(i, L"City"); if (cTemp != L"") { alert(L"”öˆL&S÷_ÅXkÿ"); return -1; } } else { if (dw.GetItemString(i, L"Status") == L"") dw.SetItemString(i, L"Status", L"1"); } } dw = dw_kpinfo.FindDwTable(L"Party"); if (dw) { xdwtable dw_b = dw_kpinfo.FindDwTable(L"item3"); for (i = 1; i <= dw.GetRowCount(); i++) { xstring skName = dw.GetItemString(i, L"Name"); if (skName == L"") { int j; for (j = 1; j <= dw_b.GetRowCount(); j++) { xstring kTemp = dw_b.GetItemString(j, L"BankName") + dw_b.GetItemString(j, L"BankAccountNo") + L""; if (kTemp != L"") { alert(L"_yhSUOMT yðN:zzÿ"); return -1; } } } } } return 1; } int DoUpdate(bool showSuccess = true) { int rec = OnPreSave(); if (rec == -1) return 0; ProcessFlowAction0(L"action:bill.update", 1); return 1; } int OnChangeRowNo(xdwtable dw, int row) { dw.SetItemString(1, L"SeqNo", L"1"); int i; for (i = row; i <= dw.GetRowCount(); i++) dw.SetItemString(i, L"SeqNo", xstring(i)); return 1; } int OnAddRow() { if (!m_layer) return 0; int h = m_layer.GetSheetIndex(); int nindex = h + 1; KXMLDOMElement n = maint::m_configDoc.selectSingleNode(L"//maint/group[@for='dwviev']/dwview[" + xstring(nindex) + L"]"); xstring sname = n.selectSingleNode(L"@name").text(); xstring stype = n.selectSingleNode(L"@type").text(); if (stype == L"dwtable") { int row; int crow; xdwtable dw_obj = GetControl(sname); xdwtable dw = dw_obj.GetCurTable(); xstring dw_n = dw.GetDwName(); if (dw_n == L"item" || dw_n == L"item2" || dw_n == L"item3") { row = dw.InsertRow(-1); if (dw_n == L"item2" || dw_n == L"item3") { OnChangeRowNo(dw, dw.GetRowCount()); } //alert(row.toString()); //dw.SetItemString(row,L"Status",L"Y"); } if (dw_n == L"item3ooo") { dw = dw_obj.FindDwTable(L"Party"); crow = dw.GetRow(); xstring scName; if (crow > 0) scName = dw.GetItemString(crow, L"Name"); row = dw.InsertRow(-1); if (scName != L"") dw.SetItemString(dw.GetRowCount(), L"Name", scName); } if (dw_n == L"Party") { row = dw.InsertRow(-1); crow = dw.GetRow(); //alert(crow.toString()); dw.SetItemString(crow, L"loadpic", L"N O VþrG"); dw.SetItemString(crow, L"dispic", L"gåw "); } } else if (stype == L"dwgrid") { xdwgrid dw_objx = new xdwgrid; dw_objx = GetControl(sname); int xrow = dw_objx.InsertRow(-1); //dw_objx.SetItemString(xrow,L"Status",L"Y"); } return 1; } int OnInsertRow() { if (!m_layer) return 0; int h = m_layer.GetSheetIndex(); int nindex = h + 1; KXMLDOMElement n = maint::m_configDoc.selectSingleNode(L"//maint/group[@for='dwviev']/dwview[" + xstring(nindex) + L"]"); xstring sname = n.selectSingleNode(L"@name").text(); xstring stype = n.selectSingleNode(L"@type").text(); if (stype == L"dwtable") { int row; int crow; xdwtable dw_obj = GetControl(sname); xdwtable dw = dw_obj.GetCurTable(); xstring dw_n = dw.GetDwName(); if (dw_n == L"item" || dw_n == L"item2" || dw_n == L"item3") { row = dw.GetRow(); if (row == 1) row = 0; crow = dw.InsertRow(row); //dw.SetItemString(crow,L"Status",L"Y"); } if (dw_n == L"Party") { row = dw.GetRow(); if (row == 1) row = 0; crow = dw.InsertRow(row); crow = dw.GetRow(); dw.SetItemString(crow, L"loadpic", L"N O VþrG"); dw.SetItemString(crow, L"dispic", L"gåw "); } } return 1; } int OnDeleteRow() { if (!m_layer) return 0; int h = m_layer.GetSheetIndex(); int nindex = h + 1; KXMLDOMElement n = maint::m_configDoc.selectSingleNode(L"//maint/group[@for='dwviev']/dwview[" + xstring(nindex) + L"]"); xstring sname = n.selectSingleNode(L"@name").text(); xstring stype = n.selectSingleNode(L"@type").text(); if (stype == L"dwtable") { int row; xdwtable dw_obj = GetControl(sname); xdwtable dw = dw_obj.GetCurTable(); xstring dw_n = dw.GetDwName(); if (dw_n == L"item" || dw_n == L"item2" || dw_n == L"item3" || dw_n == L"Party") { row = dw.GetRow(); dw.DeleteRow(row); } if (dw_n == L"Party0") { row = dw.GetRow(); dw.DeleteRow(row); } } return 1; } xstring onpartyadjust(xstring val) { xml x ; xaserverarg arg ;; arg.AddArg(L"content", val); //alert(val); //xstring sguid = xdoc.selectSingleNode(L"@guid").text(); xstring suserid = xaserver::GetUserId(); xstring sdate = publiccode::GetCurrentDate(); //arg.AddArg(L"sguid",sguid); arg.AddArg(L"suserid", suserid); arg.AddArg(L"sdate", sdate); if (xurl::post(L"/sale/data/" + GetEntityName(1) + L"/pref/partyadjust", arg.GetString(), x) != 1) { alert(x.text()); return val; } else { xstring s = x.xml(); //alert(s); return s; } } xstring GetEntityData(LPARAM pr) { xstring val; xml x ; KXMLDOMDocument xdoc = x; KXMLDOMNodeList nlist = maint::m_configDoc.selectNodes(L"//maint/group[@for='dwviev']/dwview[@name !='dw_check' and @name !='dw_supgoods']"); int index; int nlen = nlist.length(); if (nlen > 0) { for (index = 0; index < nlen; index++) { KXMLDOMElement e = nlist.item(index); xstring sname = e.selectSingleNode(L"@name").text(); xstring stype = e.selectSingleNode(L"@type").text(); if (stype == L"dwtable") { xdwtable dw_obj = GetControl(sname); dw_obj.AcceptText(); if (index == 0) { //Address xml xdd ; xstring bAddressID = L"" + dw_base.GetItemString(1, L"bAddressID"); if (bAddressID == L" ") { dw_base.SetItemString(1, L"bAddressID", publiccode::GetGuid()); dw_base.SetItemString(1, L"bAddressName", L"®[ÄW0W@"); dw_base.SetItemString(1, L"bStatus", L"1"); dw_base.SetItemString(1, L"bPrimaryFlag", L"N"); dw_base.SetItemString(1, L"bIdentifyAddressFlag", L"N"); dw_base.DwUpdateAllTo(xdd); xstring bAddress = L"" + dw_base.GetItemString(1, L"bAddress"); if (bAddress != L"") SetAttributeByaddress(xdd, L"bAddress", L"update.new", L"1"); xdoc = xdd; } else { dw_obj.DwUpdateAllTo(xdoc); } } /*else if (index==1) { xml__ xchk = new xml__; xchk.setNativePointer(xchk.CreateInstance()); dw_obj.DwUpdateAllTo(xchk.GetXmlDoc()); SetAttributeByaddress(xchk,L"item3",L"update.modify",L"1"); SetAttributeByaddress(xchk,L"isdeleted",L"update.modify",L"1"); xdoc = xchk.GetXmlDoc(); }*/ else dw_obj.DwUpdateAllTo(xdoc); } else { xdwgrid dw_objx = GetControl(sname); dw_objx.AcceptText(); dw_objx.DwUpdateAllTo(xdoc); } } } /*var root = xdoc.documentElement; var currNode = root.childNodes.item(1); var MyNewNode = currNode.cloneNode(true); root.appendChild(MyNewNode); alert(xdoc.xml()); return ""; /*xml__ x1 = new xml__; x1.loadXML(L"<a/>"); KXMLDOMElement ele = x1.GetXmlDoc(); var root = xdoc.getElementsByTagName(L"Name").item(0); root.appendChild(ele);*/ val = xdoc.xml(); //alert(val); //val = onpartyadjust(xdoc.xml()); //alert(val); return val; } int SetEntityData(xaserverarg arg) { return 0; } int ProcessFlowAction0(xstring comdid, LPARAM pr) { xstring action = comdid.mid(comdid.find(L"action:") + 7, 9999); xaserverarg arg ;; xml x ; xstring aurl = L"/workflow/query/actioninfo/" + action; if (xurl::get(aurl, L"", x) != 1) return -1; int nlen; int i = 0; xstring name; xstring worknode; xstring how; xstring state; bool at = true; KXMLDOMElement e; //SÂep‰lB KXMLDOMNodeList nlist = x.selectNodes(L"//params/param"); nlen = nlist.length(); for (i = 0; i < nlen; i++) { e = nlist.item(i); name = e.selectSingleNode(L"@name").text(); how = e.selectSingleNode(L"@how").text(); if (how == L"EntityID") arg.AddArg(name, GetEntityID(pr)); else if (how == L"Entity" || how == L"EntityData") arg.AddArg(name, GetEntityData(pr)); //"CHeckAskMsg" //"CHeckMsg" } arg.AddArg(L"action.entity", GetEntityName(pr)); //R¨O\ if (x.selectSingleNode(L"//view.action[1]")) { KXMLDOMElement n = x.selectSingleNode(L"//view.action[1]"); if (n) { name = n.selectSingleNode(L"@name").text(); //worknode = n.selectSingleNode(L"@worknode").text(); worknode = GetEntityWorkNode(pr, name); arg.AddArg(L"do", name); if (worknode != L"") { openUrl(worknode, arg); } else { alert(L"Warn: Please configure worknode for action " + name + L"."); return 1; } } } else { //xurl::post(L"/workflow/action/Supplier/bill.update",arg.GetString(),x); xml x1 ; //if (xurl::post(L"/workflow/action/"+GetEntityName(pr)+L"/"+action,arg.GetString(),x1) != 1) if (xurl::post(L"/sale/data/SupplierV3/entity/owner/save", arg.GetString(), x) != 1) { if (x1.xml()) { xstring error = x1.text(); alert(error); } } else { //alert(x1.GetXml()); if (x1.selectSingleNode(L"error")) { alert(L"OÝ[XQú•!"); return 0; } } MessageBox(GetHWND(), L"OÝ[XbRŸÿ", L"cÐy:",4); dw_base.ResetUpdateStatus(); dw_kpinfo.ResetUpdateStatus(); OnRetrieve(); } return 1; } int r1() { KXMLDOMNodeList nlist = maint::m_configDoc.selectNodes(L"//maint/group[@for='dwviev']/dwview"); int index; int nlen = nlist.length(); if (nlen > 0) { for (index = 0; index < nlen; index++) { KXMLDOMElement e = nlist.item(index); xstring sname = e.selectSingleNode(L"@name").text(); xstring stype = e.selectSingleNode(L"@type").text(); if (stype == L"dwtable") { xdwtable dw_obj = GetControl(sname); xaserverarg arg ;; arg.AddArg(L"EntityID", GetEntityID(1)); xml x1 ; xstring dataUrl = L"/sale/data/" + GetEntityName(1) + L"/entity/maint"; getUrl(dataUrl, arg.GetString(), x1); dw_obj.Retrieve(x1); break; } } return 1; } return 1; } int r2() { xml x ; KXMLDOMDocument xdoc = x; //dw_base.DwUpdateAllTo(xdoc); KXMLDOMNodeList nlist = maint::m_configDoc.selectNodes(L"//maint/group[@for='dwviev']/dwview"); int index; int nlen = nlist.length(); if (nlen > 0) { for (index = 0; index < nlen; index++) { KXMLDOMElement e = nlist.item(index); xstring sname = e.selectSingleNode(L"@name").text(); xstring stype = e.selectSingleNode(L"@type").text(); if (stype == L"dwtable") { xdwtable dw_obj = GetControl(sname); dw_obj.DwUpdateAllToDiff(xdoc); m_diffstr = xdoc.xml(); //alert(m_diffstr); break; } } return 1; } return 1; } int r3() { if (m_diffstr == L"") return 1; xml x ; x.loadXML(m_diffstr); KXMLDOMDocument xdoc = x; //dw_base.DwUpdateAllTo(xdoc); KXMLDOMNodeList nlist = maint::m_configDoc.selectNodes(L"//maint/group[@for='dwviev']/dwview"); int index; int nlen = nlist.length(); if (nlen > 0) { for (index = 0; index < nlen; index++) { KXMLDOMElement e = nlist.item(index); xstring sname = e.selectSingleNode(L"@name").text(); xstring stype = e.selectSingleNode(L"@type").text(); if (stype == L"dwtable") { xdwtable dw_obj = GetControl(sname); dw_obj.RetrieveDiff(xdoc); dw_obj.Redraw(); break; } } return 1; } return 1; } int test() { xml x ; dw_kpinfo.DwUpdateAllTo(x); //dw_kpinfo.ClearAdvanceString(1,1); //dw_kpinfo.ClearNoteString(1,1); //dw_kpinfo.ClearOriginString(1,1); //dw_kpinfo.DeleteRows(1,1,1); //dw_kpinfo.ExpandCellRow(1,2); //dw_kpinfo.ExpandMarginRow(2,1); //dw_kpinfo.ExpandRow(2,3); //dw_kpinfo.GetDwType(); ??? //xstring s = dw_kpinfo.GetDwXPath(); //Supplier //KXMLDOMElement e = dw_kpinfo.GetElement(); //alert(e.xml()); <xcell state=L"run" name=L"dw_kpinfo"/> //xstring s = dw_kpinfo.GetGuid(1); //xstring s = dw_kpinfo.GetHtml(); ??? //int i = dw_kpinfo.GetId(); //int i = dw_kpinfo.GetXNode(); //dw_kpinfo.SetGuid(1,L"5CF56D30-C02C-4CC0-971B-57894236816A"); return 1; } int OnMoveup() { test(); return 1; if (!m_layer) return 0; int h = m_layer.GetSheetIndex(); int nindex = h + 1; KXMLDOMElement n = maint::m_configDoc.selectSingleNode(L"//maint/group[@for='dwviev']/dwview[" + xstring(nindex) + L"]"); xstring sname = n.selectSingleNode(L"@name").text(); xstring stype = n.selectSingleNode(L"@type").text(); if (stype == L"dwtable") { xdwtable dw_obj = GetControl(sname); xdwtable dw = dw_obj.GetCurTable(); xstring dw_n = dw.GetDwName(); if (dw_n == L"item3") { int row = dw.GetRow(); if (row == 1) row = 0; int crow = dw.InsertRow(row); //dw. //dw.SetItemString(crow,L"Status",L"Y"); } } return 1; } int OnMovedown() { return 1; } int xxx() { //KXMLDOMElement xframeElement = GetElement(); //KXMLDOMNode xpage = xframeElement.selectSingleNode(L"//xpage"); //alert(xframeElement.xml()); /*xstring xfNodeAgentArea = L"layers"; xnode__ anode = GetAgentNode(xfNodeAgentArea); KXMLDOMElement xframeElement = GetElement(); alert(anode.GetXml()); KXMLDOMNode layers = xframeElement.selectSingleNode(L"//layers"); KXMLDOMNodeList nlist; int index; int nlen; KXMLDOMElement ele; if(layers) { nlist = layers.selectNodes(L".//layer"); nlen = nlist.length(); alert(L"nlen=L",nlen.toString()); } //xstring tools; //SetAgentNode(anode, tools);*/ return 1; } int PreOnCmdDispatch(xstring comdid) { /* if(comdid==L"action:xxx") return xxx(); if(comdid==L"retrieve") return r1(); if(comdid==L"retrievediff") return r3(); if(comdid==L"updatediff") return r2(); if(comdid==L"test") return test(); */ if (comdid == L"xmToSupplier") { OnToSupplier(); return 1; } if (comdid == L"xmBack") { return OnBack(); } //<action id=L"bill.update" caption=L"OÝ[X" scene=L"maint"/> if (comdid.find(L"action:bill.update") >= 0) { int rec = OnPreSave(); if (rec == -1) return 0;//ÔVÞ0  N W(bgˆLNåN NãxÿÔVÞQvNÖ  bgˆLNåN Nãx0 ProcessFlowAction0(comdid, 1); return 0; } if (comdid.find(L"action:bill.addrow") >= 0) OnAddRow(); if (comdid.find(L"action:bill.insertrow") >= 0) OnInsertRow(); if (comdid.find(L"action:bill.deleterow") >= 0) OnDeleteRow(); if (comdid.find(L"action:bill.moveup") >= 0) OnMoveup(); if (comdid.find(L"action:bill.movedown") >= 0) OnMovedown(); return 1; } int SendNotice() { xstring NO = dw_base.GetItemString(1, L"PartyNo"); xstring Subject = dw_base.GetItemString(1, L"Name") + L"ÿVސkc_O›^”UF"; xstring EntityID = GetEntityID(1); xstring Category = L"O›^”UFVސ"; xstring Reciever = dw_base.GetItemString(1, L"userNo"); xstring Content = L""; ViewObject::AddMessage(GetServerUrl(),Category, Reciever, NO, EntityID, Subject, Content); return 1; } int OnBack() { if (dw_base.GetRow() < 1) return 1; int MB_YESNO = 0x00000004; int IDYES = 6; if (MessageBoxW(GetHWND(), (xstring)L"Vސ" + dw_base.GetItemDisplayString(dw_base.GetRow(), L"Name") + L"u3‹÷?", L"cÐy:", MB_YESNO) != IDYES) return 1; xml x ; xaserverarg arg ;; arg.AddArg(L"SupplierID", GetEntityID(1)); // trace(sguid); if (xurl::post(L"/sale/data/SupplierV3/entity/ask2owner", arg.GetString(), x) != 1) { xstring error = x.text(); trace(error); } SendNotice(); OnRetrieve(); return 1; } int OnDoubleClicked(TEvent * evt, int p) { DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; int row = hdr.row; /*if(row < 1 || row > list::dw_list.GetRowCount()) return 1; int hwnd = evt.lParam; int s = combobox::GetCount(cb_config.GetId()); int i; for (i=0; i < s; i++){ combobox cb = new combobox; cb.setNativePointer(GetControl(L"value"+i.ToString())); if(hwnd == cb.GetId()) break; }*/ return 1; } int OnItemChangedkp(TEvent * evt, int p) { DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; xstring colname = hdr.colname; xstring coldata = hdr.data; int row = hdr.row; xdwtable dw = dw_kpinfo.FindDwTable(L"item3"); if (dw) { row = dw.GetRow(); xstring sdate = publiccode::GetCurrentDate(); dw.SetItemString(row, L"ModifyDate", sdate); } return 1; } int OnItemChanged3(TEvent * evt, int p) { DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; xstring colname = hdr.colname; xstring coldata = hdr.data; int row = hdr.row; if (colname == L"DeveloperID") { xml x ; xaserverarg arg ;; arg.AddArg(L"guid", coldata); if (xurl::get(L"/sale/data/" + GetEntityName(1) + L"/pref/getAssignment", arg.GetString(), x) == 1) { KXMLDOMElement e = x.documentElement(); xstring sOrgID = e.selectSingleNode(L"OrgID").text(); xstring sOrgName = e.selectSingleNode(L"OrgName").text(); dw_basegy.SetItemString(1, L"devOrgID", sOrgID); dw_basegy.SetItemDisplayString(1, L"devOrgID", sOrgName); } } if (colname == L"CreatorID") { xml x2 ; xaserverarg arg2 ;; arg2.AddArg(L"guid", coldata); if (xurl::get(L"/sale/data/" + GetEntityName(1) + L"/pref/getAssignment", arg2.GetString(), x2) == 1) { KXMLDOMElement e2 = x2.documentElement(); xstring sOrgID2 = e2.selectSingleNode(L"OrgID").text(); xstring sOrgName2 = e2.selectSingleNode(L"OrgName").text(); dw_basegy.SetItemString(1, L"OrgID", sOrgID2); dw_basegy.SetItemDisplayString(1, L"OrgID", sOrgName2); } } return 1; } int OnItemChanged(TEvent * evt, int p) { DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; xstring colname = hdr.colname; xstring coldata = hdr.data; int row = hdr.row; if (colname == L"DeveloperID") { xml x ; xaserverarg arg ;; arg.AddArg(L"guid", coldata); if (xurl::get(L"/sale/data/" + GetEntityName(1) + L"/pref/getAssignment", arg.GetString(), x) == 1) { KXMLDOMElement e = x.documentElement(); xstring sOrgID = e.selectSingleNode(L"OrgID").text(); xstring sOrgName = e.selectSingleNode(L"OrgName").text(); dw_base.SetItemString(1, L"devOrgID", sOrgID); dw_base.SetItemDisplayString(1, L"devOrgID", sOrgName); } } if (colname == L"CreatorID") { xml x2 ; xaserverarg arg2 ;; arg2.AddArg(L"guid", coldata); if (xurl::get(L"/sale/data/" + GetEntityName(1) + L"/pref/getAssignment", arg2.GetString(), x2) == 1) { KXMLDOMElement e2 = x2.documentElement(); xstring sOrgID2 = e2.selectSingleNode(L"OrgID").text(); xstring sOrgName2 = e2.selectSingleNode(L"OrgName").text(); dw_base.SetItemString(1, L"OrgID", sOrgID2); dw_base.SetItemDisplayString(1, L"OrgID", sOrgName2); } } if (colname == L"isdeleted") { //xml xchk ; //xchk.setNativePointer(xchk.CreateInstance()); //var xdoc = xchk.GetXmlDoc(); // dw_kpinfo.DwUpdateAllTo(xdoc); //SetAttributeByxml(xchk,L"isdeleted",L"update.modify",L"1"); //dw_kpinfo.SetColumnProp(L"isdeleted",L"update.modify",L"1"); //xdwtable dw = new xdwtable; //dw.setNativePointer(dw_kpinfo.FindDwTable(L"item3",0)); //dw.SetItemString(row,L"isdeleted",coldata); } xdwtable dw = dw_base.FindDwTable(L"Supplier"); if (dw) { xstring suserid = xaserver::GetUserId();//publiccode::GetUserInfo().id; xstring susername = publiccode::GetUser(suserid).name; xstring sdate = publiccode::GetCurrentDate(); dw.SetItemString(1, L"ModifierID", suserid);//Party dw.SetItemDisplayString(1, L"ModifierID", susername);//Party dw.SetItemString(1, L"ModifyDate", sdate); } if (colname == L"ProvinceCode" || colname == L"City" || colname == L"District") { if (colname == L"ProvinceCode") { dw_base.SetItemString(row, L"City", L""); dw_base.SetItemString(row, L"District", L""); dw_base.SetItemDisplayString(row, L"City", L""); dw_base.SetItemDisplayString(row, L"District", L""); } if (colname == L"City") { dw_base.SetItemString(row, L"District", L""); dw_base.SetItemDisplayString(row, L"District", L""); } xstring provinceCode = dw_base.GetItemDisplayString(row, L"ProvinceCode"); xstring city = dw_base.GetItemDisplayString(row, L"City"); xstring district = dw_base.GetItemDisplayString(row, L"District"); dw_base.SetItemString(row, L"Address", provinceCode + city + district); dw_base.SetItemString(row, L"bAddress", provinceCode + city + district); } if (colname == L"Address") { dw_base.SetItemString(row, L"bAddress", dw_base.GetItemString(1, L"Address")); } return 1; } //--------- int UpLoad(xstring name) { xstring str = name.mid(0, 2); str = str.toUpper(); //alert(str); int ret1 = xaserver::Upload(L"supplier" + str, name + L".jpg", GetHWND(), L"", false); //alert(ret1); return ret1; } int OnkpItemClick(TEvent * evt, int p) { xdwtable dw = dw_kpinfo.FindDwTable(L"Party"); /*xdwtable__ dw1 = new xdwtable__; dw1.setNativePointer(dw_base.FindDwTable(L"item3",0)); */ DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; xstring value = hdr.data; int row = dw.GetRow();// hdr.row; xstring xrow = xstring(row); xaserverarg arg ;; if (value == L"N O VþrG") { xstring strguid = publiccode::GetGuid(); //alert(strguid); int ret1 = UpLoad(strguid); if (ret1 == -1) return -1; if (ret1 == 0) { alert(L"N O VþrGY1%"); return -1; } else { alert(L"N O VþrGbRŸ"); xstring strimage = dw.GetItemString(row, L"ImageList1"); //alert(strimage); if (strimage == L"") strimage = L"<ImageList></ImageList>"; xml y ; y.loadXML(strimage); KXMLDOMElement ele = y.documentElement(); xml x ; xstring xx = L"<ImageList><image>" + strguid + L".jpg</image></ImageList>"; x.loadXML(xx); KXMLDOMElement e = x.selectSingleNode(L"//image"); ele.appendChild(e); dw.SetItemString(row, L"ImageList1", ele.xml()); //dw.Redraw(); } } if (value == L"gåw ") { arg.AddArg(L"src", dw.GetItemString(row, L"ImageList1")); openUrl((xstring)L"/sale/view/" + GetEntityName(1) + L"/xpage/supplierattachment/picture", arg); //alert(arg.GetArgString(L"src")); dw.SetItemString(row, L"ImageList1", arg.GetArgString(L"src")); } return 1; } int OnItemClick(TEvent * evt, int p) { DWNMHDR& hdr1 = *(DWNMHDR*)evt->notify.pnmh; xstring colname1 = hdr1.colname; DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; xstring value = hdr.data; //alert(value); //xdwtable dw = dw_base.FindDwTable(L"item2",0); //xdwtable dw1 = dw_base.FindDwTable(L"item3",0); xaserverarg arg ; /*if(value == L"N O –DNö") { xstring strguid = publiccode::GetGuid(); //alert(strguid); int ret1 = UpLoad(strguid); if(ret1 == -1) return -1; if(ret1 == 0) { alert(L"N O –DNöY1%"); return -1; } else { alert(L"N O –DNöbRŸ"); xstring strimage=dw_base.GetItemString(1,L"ImageList1"); //alert(strimage); if(strimage==L"") strimage=L"<ImageList></ImageList>"; xml y=new xml; y.setNativePointer(xml::CreateInstance()); y.loadXML(strimage); KXMLDOMElement ele= y.GetXmlDoc().documentElement; xml x=new xml; xstring xx = L"<ImageList><image>"+strguid+L".jpg</image></ImageList>"; x.loadXML(xx); KXMLDOMElement e= x.selectSingleNode(L"//image"); ele.appendChild(e); dw_base.SetItemString(1,L"ImageList1",ele.xml()); dw_base.Redraw(); //alert(ele.xml()); } }*/ if (value == L"O›^”UFDe™–DNö") { /*arg.AddArg(L"src",dw_base.GetItemString(1,L"ImageList1")); int pa = arg.getNativePointer(); openUrl(L"/sale/view/SupplierV3/xpage/supplierattachment/picture", pa); arg.setNativePointer(pa); dw_base.SetItemString(1,L"ImageList1",arg.GetArgString(L"src")); */ arg.AddArg(L"entityid", dw_base.GetGuid(1)); OpenWindow(L"dev:xpage[maint.Document.Supplier.v3.vx]", arg); } if (value == L"šŒS‚b¥TJ–DNö") { /*arg.AddArg(L"src",dw_base.GetItemString(1,L"ImageList1")); int pa = arg.getNativePointer(); openUrl(L"/sale/view/SupplierV3/xpage/supplierattachment/picture", pa); arg.setNativePointer(pa); dw_base.SetItemString(1,L"ImageList1",arg.GetArgString(L"src")); */ arg.AddArg(L"entityid", dw_base.GetGuid(1)); OpenWindow(L"dev:xpage[maint.Document.SupplierEx.v3.vx]", arg); } /*else if(value == L"N§TÁOá`o") { int start=dw_base.GetCellRowFromRowColumn(1,dw_base.GetColumnIndex(L"MainProducts")); dw_base.ExpandCellRow(start,start + dw.GetRowCount() +1); } else if(value == L"‹¾YN§€ý") { int start1=dw_base.GetCellRowFromRowColumn(1,dw_base.GetColumnIndex(L"MainProducts")); int begin=dw_base.GetCellRowFromRowColumn(1,dw_base.GetColumnIndex(L"DeveloperID")); dw_base.ExpandCellRow(start1 + dw.GetRowCount() +3,begin -2); //dw_base.ExpandMarginRow(-22,-20); }*/ else if (value == L"TO\Oá`o") { int start2 = dw_base.GetCellRowFromRowColumn(1, dw_base.GetColumnIndex(L"Status")); dw_base.ExpandCellRow(start2, start2 + 1); //dw_base.ExpandMarginRow(-22,-20); } if (colname1 == L"ThirdPartyReport") { xaserverarg arg1 ;; dw_base.SetItemString(1, L"ThirdPartyReport", L""); OpenWindow(L"dev:xpage[Inspection.Supplie.vx]", arg1); xstring str1 = arg1.GetArgString(L"ThirdPartyReport"); if (str1 != L"") { dw_base.SetItemString(1, L"ThirdPartyReport", str1); dw_base.Redraw(); } } if (colname1 == L"PayType") { xaserverarg arg2 ;; OpenWindow(L"dev:xpage[paymen.Supplier.vx]", arg2); xstring str = arg2.GetArgString(L"PayType"); if (str != L"") { dw_base.SetItemString(1, L"PayType", str); dw_base.Redraw(); } } return 1; } int OnSheetChanged(TEvent * evt, int p) { xstring suserid = xaserver::GetUserId(); PUser pp = publiccode::GetUser(suserid); xstring userno = pp.no; if (userno == L"admin") { dw_base.SetReadOnly(false); dw_kpinfo.SetReadOnly(false); } else { dw_base.SetReadOnly(true); dw_kpinfo.SetReadOnly(true); } return 1; } int PostOnAttachEvent() { AttachEvent(L"dw_base", L"DWV_CLICKED", (FEvent)&maintexOwnerSupplierv3::OnItemClick); //AttachEvent(L"tab_1", L"LYSN_SELECTEDSHEET", (FEvent)&ApplySOItem::OnSheetChanged); AttachEvent(L"dw_kpinfo", L"DWV_CLICKED", (FEvent)&maintexOwnerSupplierv3::OnkpItemClick); AttachEvent(L"dw_kpinfo", L"DWV_ITEMCHANGED", (FEvent)&maintexOwnerSupplierv3::OnItemChangedkp); AttachEvent(L"dw_base", L"DWV_ITEMCHANGED", (FEvent)&maintexOwnerSupplierv3::OnItemChanged); AttachEvent(L"dw_basegy", L"DWV_ITEMCHANGED", (FEvent)&maintexOwnerSupplierv3::OnItemChanged3); return 1; } int OnInit() { dw_base = GetControl(L"dw_base"); dw_base.SetColHeaderHeight(16); dw_kpinfo = GetControl(L"dw_kpinfo"); dw_kpinfo.SetColHeaderHeight(16); //xdwtable dw_check = GetControl(L"dw_check"); //dw_check.SetColHeaderHeight(16); //dw_check.SetReadOnly(true); dw_basegy = GetControl(L"dw_basegy"); dw_supgoods = GetControl(L"dw_supgoods"); m_layer = GetControl(L"tab_1"); xsheet = GetControl(L"tab_1"); if (!maint::m_EntityID) { xstring suserid = xaserver::GetUserId(); xstring susername = publiccode::GetUser(suserid).name; xstring sdate = publiccode::GetCurrentDate(); xstring sAddressID = publiccode::GetGuid(); dw_base.SetItemString(1, L"CreatorID", suserid);//Party dw_base.SetItemDisplayString(1, L"CreatorID", susername); dw_base.SetItemString(1, L"CreateDate", sdate); //xstring sCountryCode = dw.GetItemString(1,L"CountryCode",0); //if (sCountryCode==L"" || sCountryCode== nil) dw_base.SetItemString(1, L"CountryCode", L"142"); dw_base.SetItemDisplayString(1, L"CountryCode", L"N-Vý"); dw_base.SetItemString(1, L"Status", L"1"); dw_base.SetItemString(1, L"Type", L"2");//PartyAccount O›^”UF dw_base.SetItemString(1, L"aIdentifyAddressFlag", L"Y");//PartyAddress N;W0W@ dw_base.SetItemString(1, L"aPrimaryFlag", L"Y"); dw_base.SetItemString(1, L"aStatus", L"1"); dw_base.SetItemString(1, L"bAddressID", sAddressID);//PartyAddress [ÄNöW0W@ dw_base.SetItemString(1, L"bAddressName", L"[ÄNöW0W@"); dw_base.SetItemString(1, L"bIdentifyAddressFlag", L"N"); dw_base.SetItemString(1, L"bPrimaryFlag", L"N"); dw_base.SetItemString(1, L"bStatus", L"1"); //dw_base.ResetUpdateStatus(); //dw_check.SetItemDisplayString(1,L"BusinessLicenceFlag",L"„%Nbgqg"); //dw_check.SetItemDisplayString(1,L"TaxRegistrationFlag",L"zR¡v{‹°‹ÁY SpNö"); //dw_check.SetItemDisplayString(1,L"OrganizationCodeFlag",L"~Ä~Çg:g„Nãx"); } //dw_base.SetColHeaderHeight(0); //dw_base.SetRowSelectorWidth(0); //dw_base.SetScrollState(false); return 1; } int OnToSupplier() { xdwtable dw_pc = dw_base.FindDwTable(L"item"); for (int i = 1; i <= dw_pc.GetRowCount(); i++) { if (dw_pc.GetItemString(i, L"Name") == L"") { alert(L"‹÷“Qe€T|ûNºYÓT !"); return 1; } if (dw_pc.GetItemString(i, L"Mobile") == L"") { alert(L"‹÷“Qe€T|ûNºbKg:S÷!"); return 1; } if (dw_pc.GetItemString(i, L"IM") == L"") { alert(L"‹÷“Qe€T|ûNºQQS÷!"); return 1; } } xdwtable dw = dw_base.FindDwTable(L"Supplier"); xstring PayType = dw.GetItemString(1, L"PayType"); if (PayType.rtrim() == L"") { alert(L"NØk>e¹_N:zzÿ"); return -1; } xstring ShortName = dw.GetItemString(1, L"ShortName"); if (ShortName.rtrim() == L"") { alert(L"O›^”UF{€yðN:zzÿ"); return -1; } xstring YearEstablished = dw_base.GetItemString(1, L"YearEstablished"); if (YearEstablished.rtrim() == L"") { alert(L"bzËeö•ôN:zzÿ"); return -1; } xstring LegalPerson = dw_base.GetItemString(1, L"LegalPerson"); if (LegalPerson.rtrim() == L"") { alert(L"lÕNºNãˆhN:zzÿ"); return -1; } xstring ThirdPartyReport = dw_base.GetItemString(1, L"ThirdPartyReport"); if (ThirdPartyReport.rtrim() == L"") { alert(L"šŒS‚b¥TJN:zzÿ"); return -1; } xstring Address = dw_base.GetItemString(1, L"Address"); if (Address.rtrim() == L"") { alert(L"O›^”UFW0W@N:zzÿ"); return -1; } xstring bAddress = dw_base.GetItemString(1, L"bAddress"); if (bAddress.rtrim() == L"") { alert(L"[ÄNöW0W@N:zzÿ"); return -1; } xstring sName = dw.GetItemString(1, L"Name") + L""; sName.rtrim(); //sName = str_replace(sName,L" ",L""); if (sName == L"") { alert(L"O›^”UFT yðN:zzÿ"); return -1; } int MB_YESNO = 0x00000004; int IDYES = 6; if (MessageBoxW(GetHWND(), dw_base.GetItemDisplayString(1, L"Name") + xstring(L"lbkc_O›^”UF?"), L"cÐy:", MB_YESNO) != IDYES) return 1; dw_base.SetItemString(1, L"Type", L"2"); xstring no = dw_base.GetItemString(1, L"PartyNo"); if (no.right(1) == L"N") { no = no.left(no.length() - 1); dw_base.SetItemString(1, L"PartyNo", no); } MessageStatus(); return 1; } int MessageStatus() { xstring EntityID = GetEntityID(1); xml x = ViewObject::RetrieveData(L"/sale/data/SupplierV3/entity/MessageStatus", L"EntityID", EntityID); xml x1 = ViewObject::RetrieveData(L"/sale/data/SupplierV3/entity/ask2supplier", L"SupplierID", EntityID); return 1; } int onload() { SetArg(); maint::onload(); return 1; } int onloaded() { maint::onloaded(); OnInit(); xstring suserid = xaserver::GetUserId(); PUser p = publiccode::GetUser(suserid); xstring deptname = p.deptname; xstring userno = p.no; xstring jobname = p.jobname; return 1; } };