þÿ#include <wobject/xstring.hpp> #include <xcontrol/xtreeview.hpp> #include <xcontrol/xdwgrid.hpp> #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) OwnerMaintSupplierWin : public xframe { public: xdwtable dw_base; xdwtable dw_visitp; xnode m_agentNode; xstring bcodetotal; public: OwnerMaintSupplierWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} public: static OwnerMaintSupplierWin* CreateInstance(void* implPtr, void* hWnd) { OwnerMaintSupplierWin* pWin = new OwnerMaintSupplierWin(implPtr, (HWND)hWnd); return pWin; } 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(xstring SupplierID) { xml x ; xaserverarg arg ;; //arg.AddArg(L"SupplierID",SupplierID); arg.AddArg(L"EntityID", SupplierID); //return 1; //if (getUrl(L"/sale/data/SupplierV3/entity/owner/maint",arg.GetString(),x)!=1) if (getUrl(L"/sale/data/SupplierV3/entity/maint", arg.GetString(), x) != 1) { trace(x.text()); return -1; } else { dw_base.Retrieve(x); dw_visitp.Retrieve(x); dw_base.Redraw(); dw_visitp.Redraw(); } return 1; } int SendNotice() { xml x1 ; xaserverarg arg ;; dw_base.DwUpdateAllTo(x1); xstring NO = dw_base.GetItemString(1, L"PartyNo"); xstring Subject = dw_base.GetItemString(1, L"Name") + L"ÿu3‹÷ubkc_O›^”UF"; xstring EntityID = x1.selectSingleNode(L"Supplier/@guid").text(); xstring Category = L"SupplierV3"; xstring Reciever = L"00601"; xstring Content = L""; xml x = ViewObject::AddMessage(Category, Reciever, NO, EntityID, Subject, Content); return 1; } int SendNoticeOne() { xml x1 ; xaserverarg arg ;; dw_base.DwUpdateAllTo(x1); xstring NO = dw_base.GetItemString(1, L"PartyNo"); xstring Subject = dw_base.GetItemString(1, L"Name") + L"ÿu3‹÷ubkc_O›^”UF"; xstring EntityID = x1.selectSingleNode(L"Supplier/@guid").text(); xstring Category = L"SupplierV3"; xstring Reciever = L"00603"; xstring Content = L""; xml x = ViewObject::AddMessage(Category, Reciever, NO, EntityID, Subject, Content); return 1; } int SendNoticeTwo() { xml x1 ; xaserverarg arg ;; dw_base.DwUpdateAllTo(x1); xstring NO = dw_base.GetItemString(1, L"PartyNo"); xstring Subject = dw_base.GetItemString(1, L"Name") + L"ÿu3‹÷ubkc_O›^”UF"; xstring EntityID = x1.selectSingleNode(L"Supplier/@guid").text(); xstring Category = L"SupplierV3"; xstring Reciever = L"00609"; xstring Content = L""; xml x = ViewObject::AddMessage(Category, Reciever, NO, EntityID, Subject, Content); return 1; } int OnAsk() { xstring AdvantageProduct = dw_base.GetItemString(1, L"AdvantageProduct"); if (AdvantageProduct.rtrim() == L"") { alert(L"OR¿N§TÁN:zzÿ"); return 1; } xstring FactoryForPaperCard = dw_base.GetItemString(1, L"FactoryForPaperCard"); xstring FactoryForPart = dw_base.GetItemString(1, L"FactoryForPart"); xstring FactoryForPacking = dw_base.GetItemString(1, L"FactoryForPacking"); xstring FactoryForItem = dw_base.GetItemString(1, L"FactoryForItem"); xstring FactoryForMake = dw_base.GetItemString(1, 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 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"Address"); xstring CountryCode = dw_base.GetItemString(1, L"CountryCode"); xstring ProvinceCode = dw_base.GetItemString(1, L"ProvinceCode"); xstring City = dw_base.GetItemString(1, L"City"); xstring District = dw_base.GetItemString(1, L"District"); if (Address.rtrim() == L"" || CountryCode.rtrim() == L"" || ProvinceCode.rtrim() == L"" || City.rtrim() == L"" || District.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 PayType = dw_base.GetItemString(1, L"PayType"); if (PayType.rtrim() == L"") { alert(L"NØk>e¹_N:zzÿ"); return 1; } //xstring ImageList1 = dw_base.GetItemString(1,L"ImageList1"); xstring count = L"0"; xstring entityid = dw_base.GetGuid(1); xml x = ViewObject::RetrieveData(L"/sale/data/TDocument3/attachment/countbyid", L"entityid", entityid); KXMLDOMNodeList items = x.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 (MessageBoxW(GetHWND(), L"u3‹÷" + dw_base.GetItemDisplayString(1, L"Name") + L"ubkc_O›^”UF?", L"cÐy:", MB_YESNO) != IDYES) return 1; dw_base.SetItemString(1, L"Type", L"13"); SendNotice(); //SendNoticeOne(); SendNoticeTwo(); return OnSave(false); } int OnSave(bool at = true) { dw_base.AcceptText(); dw_visitp.AcceptText(); if (dw_base.GetItemString(1, L"Type") == L"") { dw_base.SetItemString(1, L"Type", L"12"); } xstring ShortName = dw_base.GetItemString(1, L"ShortName"); if (ShortName.rtrim() == L"") { alert(L"O›^”UF{€yðN:zzÿ"); return 1; } xstring sPartyNo = dw_base.GetItemString(1, L"PartyNo"); if (sPartyNo == L"") { sPartyNo = publiccode::GetIdentityNo(L"Party2"); dw_base.SetItemString(1, L"PartyNo", sPartyNo + L"N"); } 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; } } xml x ; xaserverarg arg ;; dw_base.DwUpdateAllTo(x); dw_visitp.DwUpdateAllTo(x); xstring error = L""; arg.AddArg(L"content", x.xml()); if (xurl::get(L"/sale/data/SupplierV3/entity/owner/save", arg.GetString(), x) != 1) { error = x.text(); alert(error); } else { if (at) { xstring str = x.documentElement().getAttribute(L"text"); if (str == L"true") { dw_base.ResetUpdateStatus(); dw_visitp.ResetUpdateStatus(); alert(L"OÝ[XbRŸ!"); OnRetrieve(dw_base.GetGuid(1)); } else { alert(L"OÝ[XY1%!"); } } } 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() { int row; int crow; xdwtable dw_obj = GetControl(L"dw_base"); 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"item4") { row = dw.InsertRow(-1); if (dw_n == L"item2" || dw_n == L"item3") { OnChangeRowNo(dw, dw.GetRowCount()); } } return 1; } int OnDeleteRow() { int row; xdwtable dw_obj = GetControl(L"dw_base"); 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"item4") { row = dw.GetRow(); dw.DeleteRow(row); } return 1; } int VOnAddRow() { int row; int crow; xdwtable dw_obj = GetControl(L"dw_visitp"); 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"item4") { row = dw.InsertRow(-1); if (dw_n == L"item2" || dw_n == L"item3") { OnChangeRowNo(dw, dw.GetRowCount()); } } return 1; } int VOnDeleteRow() { int row; xdwtable dw_obj = GetControl(L"dw_visitp"); 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"item4") { row = dw.GetRow(); dw.DeleteRow(row); } return 1; } //T}NäSÑ^Qýep int OnCmdDispatch(xstring comdid) { if (comdid == L"tab_base") { bcodetotal = L"1"; } else if (comdid == L"tab_visitp") { bcodetotal = L"2"; } else if (comdid == L"xmSave") { OnSave(true); return 1; } else if (comdid == L"xmAsk") return OnAsk(); else if (comdid == L"xmAddRow" && bcodetotal == L"1") return OnAddRow(); else if (comdid == L"xmDeleteRow" && bcodetotal == L"1") return OnDeleteRow(); else if (comdid == L"xmAddRow" && bcodetotal == L"2") return VOnAddRow(); else if (comdid == L"xmDeleteRow" && bcodetotal == L"2") return VOnDeleteRow(); else if (comdid == L"xmClose") { CloseWindow(); return 1; } return 0; } //--------- 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 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")); */ xstring guid = dw_base.GetGuid(1); if (guid.length() <= 0) { guid = publiccode::GetGuid(); dw_base.SetGuid(1, guid); } arg.AddArg(L"entityid", guid); trace(dw_base.GetGuid(1)); OpenWindow(L"dev:xpage[maint.Document.Supplier.v3.vx]", arg); } if (value == L"šŒS‚b¥TJ–DNö") { xstring guid7 = dw_base.GetGuid(1); if (guid7.length() <= 0) { guid7 = publiccode::GetGuid(); dw_base.SetGuid(1, guid7); } arg.AddArg(L"entityid", guid7); trace(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; } //T}NäYtN‹Nö int OnXCommand(TEvent* evt, LPARAM p) { return OnCmdDispatch(evt->xcommand.pStrID); } /*int OnAskDataBase(ref TNotifyEvent evt,int p) { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); hdr.data =L""; xstring x= hdr.colname; if (x==L"Province") { xstring ProvinceCode = dw_base.GetItemString(1,L"ProvinceCode"); alert(ProvinceCode); hdr.data = L"xxxxxxxxx"; } return 1; }*/ int OnItemChanged(TEvent * evt, int p) { DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; xstring colname = hdr.colname; xstring value = hdr.data; int row = hdr.row; 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")); } dw_base.Redraw(); return 1; } int OnItemClickExS(TEvent * evt, int p) { xdwtable dw = dw_visitp.FindDwTable(L"item4"); DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; xstring value = hdr.data; int row = hdr.row; //alert(value); xaserverarg arg ;; if (value == L"–DNöN O ") { if (dw.GetGuid(dw.GetRow()) == L"") { alert(L"OÝ[XTW(N O ÿ"); return 1; } arg.AddArg(L"entityid", dw.GetGuid(dw.GetRow())); OpenWindow(L"dev:xpage[maint.Document.Customer.v3.vx]", arg); return 1; } if (value == L"NºTX") { xaserverarg arg2 ;; xaserverarg parg2 = GetArg(); OpenWindow(L"dev:xpage[SupplierUserGroupPersonSelect.vx]", arg2); if (arg2.GetArgString(L"comdid") == L"xmOk") { xstring data = arg2.GetArgString(L"data"); xml x2 ; x2.loadXML(data); KXMLDOMNodeList nodes = x2.selectNodes(L"/root/item"); trace(x2.xml()); int len = nodes.length(); xstring Names = L""; for (int i = 0; i < len; i++) { KXMLDOMElement t = nodes.item(i); if (t.getAttribute(L"Name")) { xstring Name = t.getAttribute(L"Name"); if (Names == L"") Names = Name; else if (Names.find(Name) < 0) Names += L",L" + Name; } } dw.SetItemString(dw.GetRow(), L"ItemType", Names); } return 1; } return 1; } int OnAttachEvent() { //~Ñ[š]åQwgap¹QûN‹Nö AttachEvent(L"WM_XCOMMAND", (FEvent)&OwnerMaintSupplierWin::OnXCommand); //ƒ·SÖq&p¹N‹Nöÿ u(NŽ‘Ín]åQwga AttachEvent(L"WM_SETFOCUS", (FEvent)&OwnerMaintSupplierWin::OnSetFocus); AttachEvent(L"dw_base", L"DWV_CLICKED", (FEvent)&OwnerMaintSupplierWin::OnItemClick); AttachEvent(L"dw_base", L"DWV_ITEMCHANGED", (FEvent)&OwnerMaintSupplierWin::OnItemChanged); //AttachEvent(L"dw_base",L"DWV_ASKDATA",(FEvent)&OwnerMaintSupplierWin::OnAskDataBase); AttachEvent(L"dw_visitp", L"DWV_CLICKED", (FEvent)&OwnerMaintSupplierWin::OnItemClickExS); return 1; } int NewInitail() { dw_base.SetItemString(1, L"Type", L"12"); //SæeöO›^”UF xstring sdate = publiccode::GetCurrentDate(); dw_base.SetItemString(1, L"CreateDate", sdate); xstring suserid = publiccode::GetUser().id; xstring susername = publiccode::GetUser().name; dw_base.SetItemString(1, L"CreatorID", suserid); dw_base.SetItemDisplayString(1, L"CreatorID", susername); xstring sAddressID = publiccode::GetGuid(); //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.SetItemDisplayString(1, L"FND_Province", L"FND_Province"); dw_base.SetItemString(1, L"Status", L"1"); dw_base.SetItemDisplayString(1, L"Status", L"fn"); 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.Redraw(); xdwtable dw_pc = dw_base.FindDwTable(L"item"); dw_pc.SetItemString(1, L"PrimaryFlag", L"Y"); return 1; } int onload() { dw_base = GetControl(L"dw_base"); dw_base.openUrl(L"/sale/view/SupplierV3/template/supplier/base"); dw_base.SetColHeaderHeight(0); dw_base.SetRowSelectorWidth(0); dw_visitp = GetControl(L"dw_visitp"); dw_visitp.openUrl(L"/sale/view/SupplierV3/template/supplier/visit"); dw_visitp.SetColHeaderHeight(0); dw_visitp.SetRowSelectorWidth(0); bcodetotal = L"1"; OnAttachEvent(); if (GetWinParam()) { xaserverarg arg = GetArg(); if (arg.GetArgString(L"EntityID") == L"") { NewInitail(); } else OnRetrieve(arg.GetArgString(L"EntityID")); } else { NewInitail(); } return 1; } int onloaded() { SetAgent(); dw_base.SetEditUpperMode(true); return 1; } };