þÿ#include <wobject/xstring.hpp> #include <xcontrol/xtreeview.hpp> #include <xcontrol/xdwgrid.hpp> #include <xcontrol/xdatetimepick.hpp> #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) listOwnerSupplierv3 : public xframe { public: xnode m_agentNode; //Agent Condition xstring m_agentCond; //Agent Node xdwgrid dw_list; xtreeview tv_folder; xdatetimepick sdate; xdatetimepick edate; xstring urlTree; xstring searchStr; public: listOwnerSupplierv3(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} public: static listOwnerSupplierv3* CreateInstance(void* implPtr, void* hWnd) { listOwnerSupplierv3* pWin = new listOwnerSupplierv3(implPtr, (HWND)hWnd); return pWin; } //\U_[Pe‡Nö int ExpandChildFolder(HTREEITEM hItem, KXMLDOMElement pElement) { KXMLDOMNodeList nlist = pElement.selectNodes(L"Item"); int len = nlist.length(); for (int i = 0; i < len; i++) { KXMLDOMElement e = nlist.item(i); xstring name = e.getAttribute(L"name"); xstring sImage = e.getAttribute(L"image"); xstring child = e.getAttribute(L"child"); int image = 15; if (sImage) image = sImage.toInt(); HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, image); if (child != L"no") tv_folder.SetItemChild(h, 1); ExpandChildFolder(h, e); } return 1; } int InitialFolder() { KXMLDOMElement xframeElement = GetElement(); KXMLDOMElement e = xframeElement.selectSingleNode(L"//xtree[@name='tv_folder']/initial"); if (e) ExpandChildFolder(0, e); return 1; } int ExpandCatChildFolder(HTREEITEM hItem, KXMLDOMElement ele, int image) { KXMLDOMNodeList nlist = ele.selectNodes(L"item"); int len = nlist.length(); if (len > 0) tv_folder.SetItemChild(hItem, 1); for (int i = 0; i < len; i++) { KXMLDOMElement e = nlist.item(i); xstring name = e.getAttribute(L"name"); HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e , image); ExpandCatChildFolder(h, e, 35); } return 1; } int ExpandFolderItem(HTREEITEM hItem) { xml x = ViewObject::RetrieveData(urlTree); if (!x) return 0; KXMLDOMNodeList nlist = x.selectNodes(L"/data/item"); int len = nlist.length(); for (int i = 0; i < len; i++) { KXMLDOMElement e = nlist.item(i); xstring name = e.getAttribute(L"name"); HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e , 35); ExpandCatChildFolder(h, e, 35); } return 1; } int SetAgent() { 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; } //q&p¹oÀm;YtQýep int OnSetFocus(TEvent* evt, LPARAM p) { //‘Ín]åQwga SetAgent(); return 1; } int OnRetrieve() { xml x ; xcontrol query = GetControl(L"sle_search"); xstring keyword = query.GetText(); HTREEITEM hItem = tv_folder.GetSelectedItem(); if (!hItem ) return 1; HCURSOR hCursor = xutil::SetCursorWait(); KXMLDOMElement e1 = tv_folder.GetItemData(hItem); xstring no = e1.getAttribute(L"no"); xaserverarg arg ; arg.AddArg(L"keyword", keyword); arg.AddArg(L"NOS", no); if (getUrl(L"/sale/data/SupplierV3/entity/owner/list", arg.GetString(), x) != 1) { return -1; } else { dw_list.Retrieve(x); dw_list.Redraw(); dw_list.SetReadOnly(true); } return 1; } int OnNew() { xaserverarg arg ; arg.AddArg(L"EntityID", L""); OpenWindow(L"dev:xpage[maint.Owner.Supplier.v3.vx]", arg); return 1; } int OnOpen() { xaserverarg arg ; if (dw_list.GetRowCount() < 1) return 1; arg.AddArg(L"EntityID", dw_list.GetItemString(dw_list.GetRow(), L"SupplierID")); OpenWindow(L"dev:xpage[maint.Owner.Supplier.v3.vx]", arg); return 1; } int OnTreeSelChanged(TEvent * evt, int p) { return OnRetrieve(); } int OnAttachEvent() { //~Ñ[š]åQwgap¹QûN‹Nö AttachEvent(L"WM_XCOMMAND", (FEvent)& listOwnerSupplierv3::OnXCommand); //ƒ·SÖq&p¹N‹Nöÿ u(NŽ‘Ín]åQwga AttachEvent(L"WM_SETFOCUS", (FEvent)&listOwnerSupplierv3::OnSetFocus); AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)& listOwnerSupplierv3::OnDoubleClicked); AttachEvent(L"tv_folder", L"TVN_SELCHANGED", (FEvent)& listOwnerSupplierv3::OnTreeSelChanged); //h bé return 1; } //T}NäYtN‹Nö int OnXCommand(TEvent* evt, LPARAM p) { return OnCmdDispatch(evt->xcommand.pStrID); } int SendNotice() { xaserverarg arg ; if (dw_list.GetRowCount() < 1) return 1; xstring Subject = dw_list.GetItemString(dw_list.GetRow(), L"Name") + L"ÿu3‹÷ubkc_O›^”UF"; xstring NO = dw_list.GetItemString(dw_list.GetRow(), L"PartyNo"); xstring EntityID = dw_list.GetItemString(dw_list.GetRow(), L"SupplierID"); xstring Category = L"SupplierV3"; xstring Reciever = L"00601"; xstring Content = L""; ViewObject::AddMessage(GetServerUrl(),Category, Reciever, NO, EntityID, Subject, Content); return 1; } int SendNoticeOne() { xaserverarg arg ; if (dw_list.GetRowCount() < 1) return 1; xstring Subject = dw_list.GetItemString(dw_list.GetRow(), L"Name") + L"ÿu3‹÷ubkc_O›^”UF"; xstring NO = dw_list.GetItemString(dw_list.GetRow(), L"PartyNo"); xstring EntityID = dw_list.GetItemString(dw_list.GetRow(), L"SupplierID"); xstring Category = L"SupplierV3"; xstring Reciever = L"00603"; xstring Content = L""; ViewObject::AddMessage(GetServerUrl(),Category, Reciever, NO, EntityID, Subject, Content); return 1; } int SendNoticeTwo() { xaserverarg arg ; if (dw_list.GetRowCount() < 1) return 1; xstring Subject = dw_list.GetItemString(dw_list.GetRow(), L"Name") + L"ÿu3‹÷ubkc_O›^”UF"; xstring NO = dw_list.GetItemString(dw_list.GetRow(), L"PartyNo"); xstring EntityID = dw_list.GetItemString(dw_list.GetRow(), L"SupplierID"); xstring Category = L"SupplierV3"; xstring Reciever = L"00609"; xstring Content = L""; ViewObject::AddMessage(GetServerUrl(),Category, Reciever, NO, EntityID, Subject, Content); return 1; } int OnAsk() { int row = dw_list.GetRow(); if (row < 1) return 1; xstring YearEstablished = dw_list.GetItemString(row, L"YearEstablished"); if (YearEstablished.rtrim() == L"") { alert(L"bzËeö•ôN:zzÿ"); return 1; } xstring LegalPerson = dw_list.GetItemString(row, L"LegalPerson"); if (LegalPerson.rtrim() == L"") { alert(L"lÕNºNãˆhN:zzÿ"); return 1; } xstring ThirdPartyReport = dw_list.GetItemString(row, L"ThirdPartyReport"); if (ThirdPartyReport.rtrim() == L"") { alert(L"šŒS‚b¥TJN:zzÿ"); return 1; } xstring Address = dw_list.GetItemString(row, L"Address"); if (Address.rtrim() == L"") { alert(L"O›^”UFW0W@N:zzÿ"); return 1; } xstring bAddress = dw_list.GetItemString(row, L"bAddress"); if (bAddress.rtrim() == L"") { alert(L"[ÄNöW0W@N:zzÿ"); return 1; } xstring PayType = dw_list.GetItemString(row, L"PayType"); if (PayType.rtrim() == L"") { alert(L"NØk>e¹_N:zzÿ"); return 1; } xstring AdvantageProduct = dw_list.GetItemString(row, L"AdvantageProduct"); if (AdvantageProduct.rtrim() == L"") { alert(L"OR¿N§TÁN:zzÿ"); return 1; } xstring SupplierSource = dw_list.GetItemString(row, L"SupplierSource"); if (SupplierSource.rtrim() == L"") { alert(L"O›^”UF'nN:zzÿ"); return 1; } xstring FactoryForPaperCard = dw_list.GetItemString(row, L"FactoryForPaperCard"); xstring FactoryForPart = dw_list.GetItemString(row, L"FactoryForPart"); xstring FactoryForPacking = dw_list.GetItemString(row, L"FactoryForPacking"); xstring FactoryForItem = dw_list.GetItemString(row, L"FactoryForItem"); xstring FactoryForMake = dw_list.GetItemString(row, L"FactoryForMake"); if (FactoryForPaperCard != L"Y" && FactoryForPart != L"Y" && FactoryForPacking != L"Y" && FactoryForItem != L"Y" && FactoryForMake != L"Y") { alert(L"O›^”UFR~ÄN:zzÿ"); return 1; } xstring count = L"0"; xstring entityid = dw_list.GetItemString(row, L"SupplierID"); xml x1 = ViewObject::RetrieveData(L"/sale/data/TDocument3/attachment/countbyid", L"entityid", entityid); KXMLDOMNodeList items = x1.selectNodes(L"data/Item"); KXMLDOMNode t = items.item(0); if (t.selectSingleNode(L"count"))count = t.selectSingleNode(L"count").text(); if (count == L"0") { alert(L"g*N O „%NbgqgVþrGÿ"); return 1; } int MB_YESNO = 0x00000004; int IDYES = 6; if (MessageBox(GetHWND(), (xstring)L"u3‹÷" + dw_list.GetItemDisplayString(dw_list.GetRow(), L"Name") + L"ubkc_O›^”UF?", L"cÐy:", MB_YESNO) != IDYES) return 1; xml x ; xaserverarg arg ; arg.AddArg(L"SupplierID", dw_list.GetItemString(dw_list.GetRow(), L"SupplierID")); //alert(dw_list.GetItemString(dw_list.GetRow(),L"Name")); if (xurl::post(L"/sale/data/SupplierV3/entity/asksupplier", arg.GetString(), x) != 1) { xstring error = x.text(); //alert(error); } SendNotice(); //SendNoticeOne(); SendNoticeTwo(); OnRetrieve(); return 1; } int OnDelete() { if (dw_list.GetRow() < 1) return 1; int row = dw_list.GetRow(); int MB_YESNO = 0x00000004; int IDYES = 6; if (MessageBox(GetHWND(), (xstring)L"R –d" + dw_list.GetItemDisplayString(dw_list.GetRow(), L"Name") + L"O›^”UF?", L"cÐy:", MB_YESNO) != IDYES) return 1; xml x ; xaserverarg arg ;; arg.AddArg(L"EntityID", dw_list.GetItemString(dw_list.GetRow(), L"SupplierID")); // trace(sguid); if (xurl::post(L"/sale/data/SupplierV3/entity/delete", arg.GetString(), x) != 1) { xstring error = x.text(); trace(error); } else { if (x.selectSingleNode(L"//process")) { KXMLDOMElement e1 = x.selectSingleNode(L"//process"); xstring valid = e1.getAttribute(L"valid"); xstring finished = e1.getAttribute(L"finished"); xstring errInfo = L""; if (valid == L"0") { errInfo = e1.getAttribute(L"errInfo"); alert(errInfo); } else if (finished == L"0") { errInfo = e1.getAttribute(L"errInfo"); errInfo = L"YtY1%!\r\n" + errInfo; alert(errInfo); } else dw_list.DeleteRow(row); } } //OnRetrieve(); return 1; } int OnCmdDispatch(xstring comdid) { if (comdid == L"xmNew") { return OnNew(); } else if (comdid == L"xmMaint") { return OnOpen(); } else if (comdid == L"xmDelete") { return OnDelete(); } else if (comdid == L"xmRefresh") { return OnRetrieve(); } else if (comdid == L"xmAsk") { return OnAsk(); } else if (comdid == L"xmSearch") { return OnSearch(); } else if (comdid == L"note") { return OnNote(); } else if (comdid == L"Annex") { xaserverarg arg ; arg.AddArg(L"entityid", dw_list.GetItemString(dw_list.GetRow(), L"SupplierID")); OpenWindow(L"dev:xpage[maint.Document.Supplier.v3.vx]",arg); return 1; } else if (comdid == L"AnnexEx") { xaserverarg arg4 ;; arg4.AddArg(L"entityid", dw_list.GetItemString(dw_list.GetRow(), L"SDID")); OpenWindow(L"dev:xpage[maint.Document.Customer.v3.vx]", arg4); return 1; } return 1; } int OnNote() { xaserverarg arg ; arg.AddArg(L"EntityID", dw_list.GetItemString(dw_list.GetRow(), L"SupplierID")); OpenWindow(L"dev:xpage[CommentaryEx.dialog.vx]", arg); return 1; } int OnSearch() { xaserverarg arg ; arg.AddArg(L"text", searchStr); OpenWindow(L"dev:xpage[search.dialog.vx]",arg); xstring str = arg.GetArgString(L"text"); if (str != searchStr) { searchStr = str; dw_list.Filter(L"*", searchStr); return 1; } return 1; } int OnDoubleClicked(TEvent * evt, int p) { HCURSOR hCursor = xutil::SetCursorWait(); OnCmdDispatch(L"xmMaint"); xutil::RestoreCursor(hCursor); return 1; } int onload() { dw_list = GetControl(L"dw_list"); dw_list.openUrl(L"/sale/view/SupplierV3/template/supplier/list"); dw_list.SetColumnState(L"SupplierID", false); dw_list.SetColumnState(L"SourcingID", false); dw_list.SetColumnState(L"ApplyStatus", false); dw_list.SetColumnState(L"Class", false); dw_list.SetColumnState(L"userNo", false); dw_list.SetColumnState(L"YearEstablished", false); dw_list.SetColumnState(L"LegalPerson", false); dw_list.SetColumnState(L"ThirdPartyReport", false); dw_list.SetColumnState(L"bAddress", false); dw_list.SetColumnState(L"PayType", false); dw_list.SetColumnState(L"PicPath", false); dw_list.SetColumnState(L"Class", false); dw_list.SetColumnState(L"DateEx", false); dw_list.SetColumnState(L"DateExS", false); dw_list.SetColumnState(L"SOID", false); dw_list.SetColumnState(L"AdvantageProduct", false); searchStr = L""; urlTree = L"/sale/data/SupplierV3/folder"; tv_folder = GetControl(L"tv_folder"); tv_folder.SetLineAtRoot(true); InitialFolder(); return 1; } int onloaded() { SetAgent(); OnAttachEvent(); OnRetrieve(); HTREEITEM hItem = tv_folder.GetRootItem(); ExpandFolderItem(hItem); tv_folder.ExpandItem(hItem); tv_folder.ItemFocus(hItem); return 1; } };