use "xcontrol.vframe.vbusiness.vd"
use "xbase.vframe.vbusiness.vd"
use "multi.vbind.vbind.wface.vd"
use "productlibrary.vd"
use "shoppingcart.vd"
unit trade
[
class EntityProductSelectWin : public xwin
{
int hObject = 0;
string CustomerID;
string SupplierID;
string m_customer;
//²úÆ·¿â²úÆ·Áбí
xdwgrid dw_list;
//¹ºÎï³µ²úÆ·Áбí
xdwgrid dwc_list;
//²úÆ·»º´æ¶ÔÏó
xdataset g_xdoc_product;
xdataset g_xdoc_shoppingcart;
xcombobox cbx_goodscar;
//ÊÇ·ñ¶àÑ¡
xnode m_agentNode; //Agent Condition
xtreeview tv_folder;
string agentFor;
msxml::IXMLDOMElement imageElement;
string impStr;
string tname;
int FillGoodsCarList()
{
xcombobox xc = GetControl("frame:cbx_goodscar");
if (!xc) return 0;
xml x = ShoppingCartView::GetRoleList(CustomerID);
if (!x) return 0;
xc.SetText("==Ñ¡Ôñ¹ºÎï³µ==");
msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("//item");
int len = nlist.length;
for (int i = 0; i < len; i++)
{
msxml::IXMLDOMElement e = nlist.item(i);
string name = e.getAttribute("name");
xcombobox::AddItem(xc.GetId(), name);
}
return 1;
}
int SetAgent()
{
string xfNodeAgentArea = "agentarea";
xnode anode = GetAgentNode(xfNodeAgentArea);
if (m_agentNode)
{
SetAgentNodeContent(anode, m_agentNode);
}
else
{
msxml::IXMLDOMElement xframeElement = GetElement();
msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/" + xfNodeAgentArea + "[1]/*");
if (agent)
{
string s = agent.xml;
m_agentNode = SetAgentNodeContent(anode, s);
}
}
return 1;
}
//½¹µã¼¤»î´¦Àíº¯Êý
int OnSetFocus(ref TEvent evt, int param)
{
//ÖØÖù¤¾ßÌõ
SetAgent();
return 1;
}
msxml::IXMLDOMElement OnGetCarListRowElement(int row = 0)
{
if (row < 1) row = dwc_list.GetRow();
if (row < 1 || row > dwc_list.GetRowCount()) return 0;
msxml::IXMLDOMElement e = g_xdoc_shoppingcart.getRowElement("data/Item", row);
return e;
}
int OnShowImage(string skuid)
{
imageview im = GetControl("im1");
//im.RemoveImage();
im.ResetEx();
xml xp = new xml;
xp.setNativePointer(xml::CreateInstance());
xaserverarg arg_pic = new xaserverarg;
arg_pic.setNativePointer(arg_pic.CreateInstance());
arg_pic.AddArg("SKUID", skuid);
if (url::get("/sale/data/ProductLibrary3/pref/picture/imagelistSKU", arg_pic.GetString(), xp) != 1)
{
trace("xxx", xp.GetXml());
}
else
{
//trace(skuid+" "+xp.GetXml());
imageElement = xp.GetXmlDoc().documentElement;
msxml::IXMLDOMNodeList nlistp = xp.GetXmlDoc().selectNodes("ImageList/image");
int lenp = nlistp.length;
for (int ip = 0; ip < lenp; ip++)
{
msxml::IXMLDOMElement xitem = nlistp.item(ip);
string picname = xitem.selectSingleNode("PicPath").text;
string goodno = xitem.selectSingleNode("GoodsNo").text;
if (picname == "/business/products/Thumbs//")
picname = "/business/products/Thumbs/00/00000000-0000-0000-0000-000000000000.jpg";
im.AddImages(picname, "");
}
im.Redraw();
//win32::SendMessage(im.GetId(),0x000f,0,1);
//win32::InvalidateRect(im.GetId(),cast(0 as ref xrect),true);
}
return 1;
}
int OnShowImage(string skuid, string customerItemNo)
{
imageview im = GetControl("im1");
//im.RemoveImage();
im.ResetEx();
xml xp = new xml;
xp.setNativePointer(xml::CreateInstance());
xaserverarg arg_pic = new xaserverarg;
arg_pic.setNativePointer(arg_pic.CreateInstance());
arg_pic.AddArg("SKUID", skuid);
arg_pic.AddArg("CustomerID", m_customer);
arg_pic.AddArg("CustomerItemNo", customerItemNo);
if (url::get("/sale/data/ProductLibrary3/pref/picture/customer/imagelistSKU", arg_pic.GetString(), xp) != 1)
{
trace("error:" + xp.GetXml());
}
else
{
imageElement = xp.GetXmlDoc().documentElement;
msxml::IXMLDOMNodeList nlistp = xp.GetXmlDoc().selectNodes("ImageList/image");
int lenp = nlistp.length;
for (int ip = 0; ip < lenp; ip++)
{
msxml::IXMLDOMElement xitem = nlistp.item(ip);
string picname = xitem.selectSingleNode("PicPath").text;
string goodno = xitem.selectSingleNode("GoodsNo").text;
if (picname == "/business/products/Thumbs//")
picname = "/business/products/Thumbs/00/00000000-0000-0000-0000-000000000000.jpg";
im.AddImages(picname, "");
}
im.Redraw();
}
return 1;
}
int OnRowChanged(ref TNotifyEvent evt, int p)
{
ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR);
int row = hdr.row;
htmlctrl xs = GetControl("html_detail");
string html = makeHtml(row);
xs.SetContent(html);
xs.Redraw();
string id = g_xdoc_product.getData(0, "data/Item", row, "@guid");
OnShowImage(id);
return 1;
}
int OnGoodsCarRowChanged(ref TNotifyEvent evt, int p)
{
ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR);
int row = hdr.row;
htmlctrl xs = GetControl("html_detail");
string html = makeGoodscarHtml(row);
xs.SetContent(html);
xs.Redraw();
string id = g_xdoc_shoppingcart.getData(0, "data/Item", row, "SKUID");
if (m_customer != "")
{
string customerItemNo = g_xdoc_shoppingcart.getData(0, "data/Item", row, "CustomerItemNo");
OnShowImage(id, customerItemNo);
}
else
{
OnShowImage(id);
}
return 1;
}
int DeleteRow(int row)
{
int IDOK = 1;
int MB_OKCANCEL = 1;
int MB_ICONQUESTION = 32;
if (win32::MessageBox(GetHWND(), "È·ÈÏɾ³ýÖ¸¶¨µÄÏɾ³ýºó½«²»Äָܻ´?", "Ìáʾ", MB_OKCANCEL | MB_ICONQUESTION) != IDOK) return 1;
string id = g_xdoc_product.getData(0, "data/Item", row, "@guid");
if (ProductLibraryView::DeleteItem(id) == 1) dw_list.DeleteRow(0);
return 1;
}
int SetSelectState(xdwgrid dw_obj, int state)
{
dw_obj.SetSelectionMode(3);
return 1;
}
int OnCkbCLick(ref TEvent evt, int p)
{
xcheckbox cbx_1 = GetControl("frame:cbx1");
int state = cbx_1.GetCheck(cbx_1.GetId());
return SetSelectState(dw_list, state);
}
int OnCkbCLick2(ref TEvent evt, int p)
{
xcheckbox cbx_2 = GetControl("frame:cbx2");
int state = cbx_2.GetCheck(cbx_2.GetId());
return SetSelectState(dwc_list, state);
}
xml GetGoodsPropList(string guid)
{
xml x = new xml;
x.setNativePointer(xml::CreateInstance());
xaserverarg arg = new xaserverarg;
arg.setNativePointer(arg.CreateInstance());
arg.AddArg("guid", guid);
if (url::get("/sale/data/SO/goods/goodsprop/list", arg.GetString(), x) != 1)
{
string error = x.GetXmlDoc().text;
alert(error);
}
return x;
}
string Up(string name) {
string str = name.mid(0, 2);
str = str.upper();
return xaserver::UploadFile("product" + str, name + ".jpg", this.GetHWND(), "", false);
}
int OnAddImage() {
if (m_customer != "") return OnAddImageEx();
int row = dw_list.GetNextSelectRow(1);
if (row < 1) row = dw_list.GetRow();
if (row < 1 || row > dw_list.GetRowCount()) return 0;
msxml::IXMLDOMElement e = g_xdoc_product.getRowElement("data/Item", row);
string skuid = g_xdoc_product.getData(0, "data/Item", row, "@guid");
string SKUNo = g_xdoc_product.getData(0, "data/Item", row, "SKUNo");
string id = ViewObject::GetGuid();
string ret1 = Up(id);
if (ret1 == "-1") return -1;
if (ret1 == "0")
{
alert("ÉÏ´«Í¼Æ¬Ê§°Ü");
return -1;
}
string originfile = ret1;
//alert(originfile);
string ext = originfile.right(7);
if (ext.find(".") >= 0)
ext = ext.mid(ext.find(".") + 1, 9999);
else
ext = "jpg";
// ͼƬÃû¼ÓÈëÊý¾Ý¿â
xml x = new xml;
x.setNativePointer(xml::CreateInstance());
x.LoadXml("- " +
"" + id + "" +
"" + originfile + "" +
"" + ext + "" +
"" + skuid + "" +
"[" + SKUNo.trim() + "]" +
"" + id + ".jpg" +
"
"
);
xaserverarg arg = new xaserverarg;
arg.setNativePointer(arg.CreateInstance());
arg.AddArg("content", x.GetXml());
if (url::get("/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1)
{
alert(x.GetXmlDoc().text);
return -1;
}
dw_list.SetItemString(row, "pic", "*");
dw_list.Redraw();
//Ë¢ÐÂһϽçÃæ£¬ÏÔʾͼƬ
OnShowImage(skuid);
return 1;
}
int OnAddImageEx() {
int row = dwc_list.GetNextSelectRow(1);
if (row < 1) row = dwc_list.GetRow();
if (row < 1 || row > dwc_list.GetRowCount()) return 0;
msxml::IXMLDOMElement e = g_xdoc_shoppingcart.getRowElement("data/Item", row);
string skuid = g_xdoc_shoppingcart.getData(0, "data/Item", row, "SKUID");
string SKUNo = g_xdoc_shoppingcart.getData(0, "data/Item", row, "SKUID/@__displaystring");
CustomerID = m_customer;
string CustomerItemNo = g_xdoc_shoppingcart.getData(0, "data/Item", row, "CustomerItemNo");
string id = ViewObject::GetGuid();
string ret1 = Up(id);
if (ret1 == "-1") return -1;
if (ret1 == "0")
{
alert("ÉÏ´«Í¼Æ¬Ê§°Ü");
return -1;
}
string originfile = ret1;
string ext = originfile.right(7);
if (ext.find(".") >= 0)
ext = ext.mid(ext.find(".") + 1, 9999);
else
ext = "jpg";
// ͼƬÃû¼ÓÈëÊý¾Ý¿â
xml x = new xml;
x.setNativePointer(xml::CreateInstance());
x.LoadXml("- " +
"" + id + "" +
"" + originfile + "" +
"" + ext + "" +
"" + skuid + "" +
"" + CustomerItemNo + "" +
"" + CustomerID + "" +
"[" + SKUNo.trim() + "]" +
"" + id + ".jpg" +
"
"
);
xaserverarg arg = new xaserverarg;
arg.setNativePointer(arg.CreateInstance());
arg.AddArg("content", x.GetXml());
if (url::get("/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1)
{
alert(x.GetXmlDoc().text);
return -1;
}
dwc_list.SetItemString(row, "pic", "*");
dwc_list.Redraw();
//Ë¢ÐÂһϽçÃæ£¬ÏÔʾͼƬ
OnShowImage(skuid, CustomerItemNo);
return 1;
}
int OnDeleteImageEx()
{
int row = dwc_list.GetNextSelectRow(1);
if (row < 1) row = dwc_list.GetRow();
if (row < 1 || row > dwc_list.GetRowCount()) return 0;
imageview im = GetControl("im1");
int index = im.GetSelectIndex();
int count = im.GetImageCount();
if (count < 1) return 1;
msxml::IXMLDOMNodeList images = imageElement.selectNodes("image");
int length = images.length;
if (length < index) return 1;
int MB_OKCANCEL = 0x00000001;
int IDOK = 1;
if (win32::MessageBox(GetHWND(), "È·ÈÏɾ³ýµ±Ç°Í¼Æ¬?", "Ìáʾ", MB_OKCANCEL) != IDOK) return 1;
string id = images.item(index).selectSingleNode("@guid").text;
xml x = new xml;
x.setNativePointer(xml::CreateInstance());
xaserverarg arg = new xaserverarg;
arg.setNativePointer(arg.CreateInstance());
string str = " ";
arg.AddArg("content", str);
if (url::get("/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1)
{
alert(x.GetXmlDoc().text);
return -1;
}
if (count == 1)
{
dwc_list.SetItemString(row, "pic", "");
dwc_list.Redraw();
}
string skuid = g_xdoc_shoppingcart.getData(0, "data/Item", row, "SKUID");
string SKUNo = g_xdoc_shoppingcart.getData(0, "data/Item", row, "SKUID/@__displaystring");
CustomerID = m_customer;
string CustomerItemNo = g_xdoc_shoppingcart.getData(0, "data/Item", row, "CustomerItemNo");
OnShowImage(skuid, CustomerItemNo);
return 1;
}
int OnDeleteImage() {
if (m_customer != "") return OnDeleteImageEx();
int row = dw_list.GetNextSelectRow(1);
if (row < 1) row = dw_list.GetRow();
if (row < 1 || row > dw_list.GetRowCount()) return 0;
imageview im = GetControl("im1");
int index = im.GetSelectIndex();
int count = im.GetImageCount();
if (count < 1) return 1;
msxml::IXMLDOMNodeList images = imageElement.selectNodes("image");
int length = images.length;
if (length < index) return 1;
int MB_OKCANCEL = 0x00000001;
int IDOK = 1;
if (win32::MessageBox(GetHWND(), "È·ÈÏɾ³ýµ±Ç°Í¼Æ¬?", "Ìáʾ", MB_OKCANCEL) != IDOK) return 1;
string id = images.item(index).selectSingleNode("@guid").text;
xml x = new xml;
x.setNativePointer(xml::CreateInstance());
xaserverarg arg = new xaserverarg;
arg.setNativePointer(arg.CreateInstance());
string str = " ";
arg.AddArg("content", str);
if (url::get("/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1)
{
alert(x.GetXmlDoc().text);
return -1;
}
if (count == 1)
{
dw_list.SetItemString(row, "pic", "");
dw_list.Redraw();
}
msxml::IXMLDOMElement e1 = g_xdoc_product.getRowElement("data/Item", row);
string skuid = e1.getAttribute("guid");
OnShowImage(skuid);
return 1;
}
xml GetGoodsPropListEx(string guid)
{
xml x = new xml;
x.setNativePointer(xml::CreateInstance());
string fields = "";
/*
fields +="";
fields +="";
fields +="";
fields +="";
fields +="";
fields +="";
*/
fields += "";
fields += "";
fields += "";
fields += "";
fields += "";
//fields +="";
fields += "";
//fields +="";
fields += "";
x.LoadXml(fields);
return x;
}
string makeHtml(int row)
{
string id = g_xdoc_product.getData(0, "data/Item", row, "@guid");
xml x = GetGoodsPropList(id);
xml x1 = GetGoodsPropListEx(id);
string html = "
";
html += "񅧏:" + dw_list.GetItemString(row, "No") +
" ÀàÏî:" + dw_list.GetItemString(row, "RefNo") +
"
";
html += "»õºÅ:" + dw_list.GetItemString(row, "GoodsNo") +
"
";
html += "Æ·Ãû:" + dw_list.GetItemString(row, "CName") +
"
";
if (dw_list.GetItemString(row, "CSpec") != "")
html += "¹æ¸ñ:" + dw_list.GetItemString(row, "CSpec") +
"
";
msxml::IXMLDOMNodeList fieldsEx = x1.GetXmlDoc().selectNodes("data/field");
string ls_detail = "";
string ls_item = "";
string name;
string label;
int len = fieldsEx.length;
int i = 0;
for (i = 0; i < len; true)
{
int cnt = 0;
ls_item = "";
while (cnt < 2)
{
name = fieldsEx.item(i).selectSingleNode("@name").text;
label = fieldsEx.item(i).selectSingleNode("@label").text;
ls_item += "" + label + " | " + "" + g_xdoc_product.getData(0, "data/Item", row, name) + " | ";
cnt++;
i++;
if (i == len)break;
}
ls_detail += "" + ls_item + "
";
}
html += "";
string ls_star = "";
msxml::IXMLDOMNodeList fields = x.GetXmlDoc().selectNodes("data/field");
len = fields.length;
ls_detail = "";
if (len > 0)
html += "¼¼ÊõÒªÇó:
";
for (i = 0; i < len; true)
{
ls_item = "";
int count = 0;
while (count < 2)
{
name = fields.item(i).selectSingleNode("@name").text;
label = fields.item(i).selectSingleNode("@label").text;
if (name == "QualityTerm" || name == "PackTerm" || label == "ÖÊÁ¿" || label == "°ü×°ÖÊÁ¿" || label == "¼¼ÊõÒªÇó")
{
i++;
if (i >= len)count = 2;
continue;
}
else if (g_xdoc_product.getData(0, "data/Item", row, name) == "")
{
msxml::IXMLDOMNodeList options = fields.item(i).selectNodes("item");
int tlen = options.length;
string terms = "";
for (int k = 0; k < tlen; k++)
{
if (options.item(k).text)
{
if (k > 0) terms += ", ";
terms += "[" + options.item(k).text + "]";
}
}
ls_star += "" + label + "*:" + terms + "
";
}
else
{
ls_item = "" + label + " | " + "" + g_xdoc_product.getData(0, "data/Item", row, name) + " | ";
count++;
}
i++;
if (i >= len)count = 2;
}
ls_item = "" + ls_item + "
";
ls_detail += ls_item;
}
html += "";
if (dw_list.GetItemString(row, "QualityTerm") != "")
{
html += "";
html += "ÖÊÁ¿:
";
html += "" + dw_list.GetItemString(row, "QualityTerm") + "
";
}
if (dw_list.GetItemString(row, "PackTerm") != "")
{
html += "";
html += "°ü×°ÖÊÁ¿:
";
html += "" + dw_list.GetItemString(row, "PackTerm") + "
";
}
if (g_xdoc_product.getData(0, "data/Item", row, "Remark") != "" && id == "23A8BBA2-DEF1-4C00-978E-646151A6082E")
{
html += "±¸×¢:
";
html += "" + g_xdoc_product.getData(0, "data/Item", row, "Remark") + "
";
}
html += "";
//ÐDZêÏî
html += ls_star;
//ÏÔʾͼƬ
/*string picname = "1FA9E331-F95C-4E51-B80C-73FB9B911D8D.jpg";//dw_list.GetItemString(row,"ImgName"); //ItemID+".jpg";
string str = picname.mid(0,2);
str = str.upper();
string serversrc ="http://192.168.7.241:1001/business/products/chanpin/"+str+"/"+picname;
html += "ͼƬ:";
html += "
";
*/
html += "";
return html;
}
string makeGoodscarHtml(int row)
{
string No = dwc_list.GetItemString(row, "RefNo");//»ñÈ¡ÊôÐÔÖµid
xml x = GetGoodsPropList(No);
string html = "";
html += "񅧏:" + dwc_list.GetItemString(row, "No") +
"
";
html += "Æ·Ãû:" + dwc_list.GetItemString(row, "CName") +
"
";
html += "¹æ¸ñ:" + dwc_list.GetItemString(row, "CSpec") +
"
";
msxml::IXMLDOMNodeList fields = x.GetXmlDoc().selectNodes("data/field");
int len = fields.length;
html += "" +
"" +
"" +
"";
html += "";
html += "±àºÅ | ÏîÄ¿ | ÄÚÈÝ | ";
html += "
";
for (int i = 0; i < len; i++)
{
string name = fields.item(i).selectSingleNode("@name").text;
string label = fields.item(i).selectSingleNode("@label").text;
html += "";
if (i == 0)
html += "" + No + " | " + label + " | " + " | ";
else
html += "" + label + " | " + g_xdoc_shoppingcart.getData(0, "data/Item", row, name) + " | ";
html += "
";
}
html += "";
html += "" + g_xdoc_shoppingcart.getData(0, "data/Item", row, "PackCode") + " | °ü×°·½Ê½ | " +
g_xdoc_shoppingcart.getData(0, "data/Item", row, "CPack") + " | ";
html += "
";
html += "";
html += "°ü×°ÒªÇó | " + g_xdoc_shoppingcart.getData(0, "data/Item", row, "PackQualityTerm") + " | ";
html += "
";
html += "";
html += "²àßé | | ";
html += "
";
html += "";
html += "" + g_xdoc_shoppingcart.getData(0, "data/Item", row, "QualityCode") + " | ÖÊÁ¿ÒªÇó | " +
g_xdoc_shoppingcart.getData(0, "data/Item", row, "QualityTerm") + " | ";
html += "
";
html += "
";
html += "";
return html;
}
int OnImport()
{
if (!hObject) return 1;
int rw = 0;
string ls_nos = "ImportXml:";
if (impStr == "")
{
alert("ÇëÑ¡ÔñÉÌÆ·!");
return 1;
}
if (tname == "ÒÑѯ¼Û²úÆ·")
{
int row = dwc_list.GetNextSelectRow(1);
while (row > 0)
{
if (dwc_list.GetItemString(row, "pic") != "*")
{
alert("µÚ" + row.toString() + "ÐÐÇëÔö¼Ó²úƷͼƬ!");
return 1;
}
row = dwc_list.GetNextSelectRow(row + 1);
}
}
else {
row = dw_list.GetNextSelectRow(1);
while (row > 0)
{
if (dw_list.GetItemString(row, "pic") != "*")
{
alert("µÚ" + row.toString() + "ÐÐÇëÔö¼Ó²úƷͼƬ!");
return 1;
}
row = dw_list.GetNextSelectRow(row + 1);
}
}
ls_nos += impStr;
dwc_list.SelectRow(0, false);
dwc_list.Redraw();
dw_list.SelectRow(0, false);
dw_list.Redraw();
impStr = "";
win32::SendMessage(hObject, 0x401, ls_nos, 0);
alert("תÈëÍê³É!");
return 1;
}
int OnSearch()
{
int hItem = tv_folder.GetSelectedItem();
return RetrieveItem(hItem);
}
int DeleteRow(int row)
{
int IDOK = 1;
int MB_OKCANCEL = 1;
int MB_ICONQUESTION = 32;
if (win32::MessageBox(GetHWND(), "È·ÈÏɾ³ýÖ¸¶¨µÄÏɾ³ýºó½«²»Äָܻ´?", "Ìáʾ", MB_OKCANCEL | MB_ICONQUESTION) != IDOK) return 1;
string id = g_xdoc_product.getData(0, "data/Item", row, "@guid");
if (ProductLibraryView::DeleteItem(id) == 1) dw_list.DeleteRow(0);
return 1;
}
//ÃüÁî·¢²¼º¯Êý
int OnCmdDispatch(string comdid)
{
int hCursor;
string name = "";
if (comdid == "xmClose")
{
CloseWindow();
return 1;
}
else if (comdid == "xmImport")
{
OnImport();
return 1;
}
else if (comdid == "xmSearch")
{
OnSearch();
return 1;
}
else if (comdid == "xmAdd")
{
ItemAdd();
return 1;
}
else if (comdid == "xmMaint")
{
ItemMaint();
return 1;
}
else if (comdid == "xmDelete")
{
int row = dw_list.GetRow();
if (row < 1) return 1;
DeleteRow(row);
return 1;
}
else if (comdid == "xmAddImage")
{
return OnAddImage();
}
else if (comdid == "xmDeleteImage")
{
return OnDeleteImage();
}
return 0;
}
int ItemAdd()
{
int hItem = tv_folder.GetSelectedItem();
int hTopItem = LookupTopFolder(hItem);
string name = tv_folder.GetItemLabel(hTopItem);
msxml::IXMLDOMElement e = tv_folder.GetItemData(hItem);
string guid = e.getAttribute("guid");
if (guid == "") return 1;
xaserverarg arg = new xaserverarg;
arg.setNativePointer(arg.CreateInstance());
arg.AddArg("guid", e.getAttribute("guid"));
if (name == "¸öÈ˲úÆ·")
arg.AddArg("FolderID", e.getAttribute("guid"));
else
arg.AddArg("CategoryID", e.getAttribute("guid"));
string No = e.getAttribute("CategoryNo");
if (No == "") No = e.getAttribute("no");
string Name = e.getAttribute("CName");
if (Name == "") Name = e.getAttribute("cname");
arg.AddArg("No", No);
arg.AddArg("CName", Name);
int p = arg;
OpenWindow("dev:xpage[Quick.Input.NewProductEx.vx]", p);
if (arg.GetArgString("data.modify") == "1")RetrieveItem(hItem);
return 1;
}
int ItemMaint()
{
int hItem = tv_folder.GetSelectedItem();
msxml::IXMLDOMElement e = tv_folder.GetItemData(hItem);
//string no = e.getAttribute("no");
//if(no=="") return 1;
string guid = e.getAttribute("guid");
if (guid == "") return 1;
/*
if(no=="NP0000FS" || no=="UP0000FS")
{
OpenWindow("dev:xpage[PackSchemaMaint.goodslib.vx]");
}else
{
int pr = g_xdoc_product;
OpenWindow("dev:xpage[ProductLibraryItemMaint.vx]",pr);
}
*/
//msxml::IXMLDOMElement ele = g_xdoc_product.getRowElement("data/Item", 1);
//alert(ele.xml);
int pr = g_xdoc_product;
OpenWindow("dev:xpage[ProductLibraryItemMaint3.vx]", pr);
return 1;
}
//ÃüÁî´¦Àíʼþ
int OnXCommand(ref TXCommandEvent evt, int param)
{
return OnCmdDispatch(evt.pStrID);
}
//²éÕÒµ±Ç°Ê÷ÏîµÄ¶¥¼¶Ä¿Â¼
int LookupTopFolder(int hItem)
{
int hRoot = tv_folder.GetRootItem();
while (tv_folder.GetParentItem(hItem)) hItem = tv_folder.GetParentItem(hItem);
return hItem;
}
//²åÈë²úÆ·ÀàÏîµÄ×ÓÏî
int MakeGoodsFolderItem(int hItem, string sno)
{
xml x = ProductLibraryView::GetTreeChildItems3(sno);
if (!x) return 0;
msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("//Item");
int len = nlist.length;
for (int i = 0; i < len; i++)
{
msxml::IXMLDOMElement e = nlist.item(i);
string name = e.getAttribute("CName");
string no = e.getAttribute("CategoryNo");
string label = no.trim() + " " + name;
int h = tv_folder.InsertChildItem(hItem, label, trust(e as int), 15);
tv_folder.SetItemChild(h, 1);
}
return 1;
}
//²åÈëвúƷĿ¼×ÓÏî
int MakeUserGoodsFolderItem(int hItem, string sno)
{
xml x = ProductLibraryView::GetTreeUserChildItems3(sno);
if (!x) return 0;
msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("//Item");
int len = nlist.length;
for (int i = 0; i < len; i++)
{
msxml::IXMLDOMElement e = nlist.item(i);
string name = e.getAttribute("CName");
string no = e.getAttribute("CategoryNo");
string label = no.trim() + " " + name;
int h = tv_folder.InsertChildItem(hItem, label, trust(e as int), 15);
string child = e.getAttribute("Childs");
if (child == "")
tv_folder.SetItemChild(h, 1);
else if (child != "0")
tv_folder.SetItemChild(h, 1);
}
return 1;
}
//²åÈ빺Îï³µÏî
int ExpandCatChildFolder(int hItem, msxml::IXMLDOMElement ele, int image)
{
msxml::IXMLDOMNodeList nlist = ele.SelectNodes("item");
int len = nlist.length;
if (len > 0) tv_folder.SetItemChild(hItem, 1);
for (int i = 0; i < len; i++)
{
msxml::IXMLDOMElement e = nlist.item(i);
string name = e.getAttribute("name");
int h = tv_folder.InsertChildItem(hItem, name, trust(e as int), image);
ExpandCatChildFolder(h, e, 35);
}
return 1;
}
int MakeGoodCarFolderItem(int hItem)
{
xml x = ShoppingCartView::GetSupplierRoleList(SupplierID);
if (!x) return 0;
msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("/data/item");
int len = nlist.length;
for (int i = 0; i < len; i++)
{
msxml::IXMLDOMElement e = nlist.item(i);
string name = e.getAttribute("name");
int h = tv_folder.InsertChildItem(hItem, name, trust(e as int), 35);
ExpandCatChildFolder(h, e, 35);
}
return 1;
}
//Ê÷Õ¹¿ª
int OnTreeExpanding(ref TNotifyEvent evt, int p)
{
ref NMTREEVIEW nmtv = evt.pnmh;
int hItem = nmtv.itemNew.hItem;
int hTopItem = LookupTopFolder(hItem);
string name = tv_folder.GetItemLabel(hTopItem);
int child = tv_folder.GetChildItem(hItem);
string no = "";
msxml::IXMLDOMElement e;
if (name == "¹«Ë¾¿â" && !child)
{
no = "";
if (hTopItem != hItem)
{
e = tv_folder.GetItemData(hItem);
no = e.getAttribute("categoryid");
}
else
{
e = tv_folder.GetItemData(hItem);
no = e.getAttribute("categoryid");
}
MakeGoodsFolderItem(hItem, no);
}
else if (name == "¸öÈË¿â" && !child)
{
no = "";
if (hTopItem != hItem)
{
e = tv_folder.GetItemData(hItem);
no = e.getAttribute("categoryid");
MakeUserGoodsFolderItem(hItem, no);
}
}
else if (name == "ÒÑѯ¼Û²úÆ·" && !child)
{
if (hItem == hTopItem)MakeGoodCarFolderItem(hItem);
}
return 1;
}
int ResetAgent(string agentAsk)
{
if (agentFor != agentAsk)
{
agentFor = agentAsk;
m_agentNode = 0;
SetAgent();
}
return 1;
}
int LookupCustomerFolder(int hItem)
{
while (true)
{
msxml::IXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as msxml::IXMLDOMElement);
string str = e1.getAttribute("no");
if (str.find("Customer:") >= 0) return hItem;
hItem = tv_folder.GetParentItem(hItem);
if (hItem == 0) break;
}
return 0;
}
string LookupCustomer(int hItem)
{
hItem = LookupCustomerFolder(hItem);
if (hItem == 0) return "";
msxml::IXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as msxml::IXMLDOMElement);
string str = e1.getAttribute("no");
return str.mid("Customer:".length(), 9999);
}
int RetrieveItem(int hItem)
{
int hTopItem = LookupTopFolder(hItem);
tname = tv_folder.GetItemLabel(hTopItem);
string selectname = tv_folder.GetItemLabel(hItem);
imageview im = GetControl("im1");
m_customer = "";
xcontrol query = GetControl("sl_search");
string queryString = query.GetText();
if (hTopItem == 0 && queryString != "")
{
tname = "ÒÑѯ¼Û²úÆ·";
selectname = "ÒÑѯ¼Û²úÆ·";
}
if (tname == "ÒÑѯ¼Û²úÆ·")
{
if (agentFor != "goodscar")SwitchLayer("goodscarsheet", "sheetframe");
ResetAgent("goodscar");
if (selectname != tname)
{
msxml::IXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as msxml::IXMLDOMElement);
string str = e1.getAttribute("no");
if (str == "Supplier") return 1;
if (str.find("Customer:") == 0 || str.find("SO:") == 0 || str.find("Supplier:") == 0 || str.find("Enquiry:") == 0)
{
m_customer = LookupCustomer(hItem);
if (str.find("Customer:") == 0)
dwc_list.openUrl("/sale/view/ProductLibrary/template/cart/goodscustomerlist");
else
dwc_list.openUrl("/sale/view/ProductLibrary/template/cart/goodssolist");
dwc_list.Reset();
dwc_list.SetReadOnly(true);
if (queryString == "")
g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(str));
else
g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(str, queryString));
if (str.find("Supplier:") == 0)
{
if (dwc_list.GetRowCount() > 0)
{
OnShowImage(dwc_list.GetItemString(1, "SKUID"));
}
}
}
else if (e1.getAttribute("categoryid") != "")
{
string categoryid = e1.getAttribute("categoryid");
dwc_list.SetDataObject(ProductLibraryView::GetMaintListForm3(categoryid).GetXmlDoc());
dwc_list.SetReadOnly(true);
dwc_list.Reset();
if (queryString == "")
g_xdoc_shoppingcart.Retrieve(ProductLibraryView::GetMaintList3(categoryid));
else
g_xdoc_shoppingcart.Retrieve(ProductLibraryView::GetMaintList3(categoryid, queryString, ""));
}
else
{
dwc_list.openUrl("/sale/view/ProductLibrary/template/cart/goodssolist");
dwc_list.SetReadOnly(true);
dwc_list.Reset();
if (queryString == "")
g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(selectname));
else
g_xdoc_shoppingcart.Retrieve(ShoppingCartView::GetGoodsList(selectname, queryString));
}
dwc_list.PostRetrieve();
dwc_list.Redraw();
if (dwc_list.GetRowCount() >= 1)
{
htmlctrl xs = GetControl("html_detail");
xs.SetContent(makeGoodscarHtml(1));
if (m_customer != "")
{
string skuid = g_xdoc_shoppingcart.getData(0, "data/Item", 1, "SKUID");
string customerItemNo = g_xdoc_shoppingcart.getData(0, "data/Item", 1, "CustomerItemNo");
OnShowImage(skuid, customerItemNo);
}
}
else {
im.ResetEx();
im.Redraw();
xs = GetControl("html_detail");
xs.SetContent("