use "xcontrol.vframe.vbusiness.vd" use "xbase.vframe.vbusiness.vd" use "enquiry.view.vd" use "quote.view.vd" use "publiccode.vutil.vbusiness.vd" unit trade [ class EnquiryMaintView : public frame { xdwgrid dw_goods; xdwtable dw_base; xnode m_agentNode; //Agent Condition string sheetname; 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; } string GetEntityData(int pr) { dw_base.AcceptText(); dw_goods.AcceptText(); if (dw_base.GetItemString(1, "EnquiryNo") == "") { string EnquiryNo = EnquiryView::MakeBillNo(); dw_base.SetItemString(1, "EnquiryNo", EnquiryNo); } xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); dw_goods.DwUpdateAllToEx(x.GetXmlDoc()); dw_base.DwUpdateAllTo(x.GetXmlDoc()); return x.GetXml(); } int SetSeqNo(xdwgrid dw_obj, string SeqNoColumn, int nRow) { if (nRow > 1) { int SeqNo = dw_goods.GetItemInt(nRow - 1, SeqNoColumn); if (SeqNo != 0) SeqNo += 10; else SeqNo = nRow * 10; dw_obj.SetItemInt(nRow, SeqNoColumn, SeqNo); } else dw_obj.SetItemInt(nRow, SeqNoColumn, 10); return 1; } int Adjust() { string str; for (int i = 1; i <= dw_goods.GetRowCount(); i++) { str = dw_goods.GetItemString(i, "SupplierID"); if (dw_goods.GetItemString(i, "ItemID") != "") if (str == "") { if (i > 1) { if (dw_goods.GetItemString(i - 1, "SupplierID") != "") { dw_goods.SetItemDisplayString(i, "SupplierID", dw_goods.GetItemDisplayString(i - 1, "SupplierID")); dw_goods.ItemChangeTo(i, "SupplierID", dw_goods.GetItemString(i - 1, "SupplierID")); } } } } return 1; } int OnSave() { dw_base.AcceptText(); dw_goods.AcceptText(); if (dw_base.GetItemString(1, "Remark") != "±£´æ") { if (dw_base.GetItemString(1, "EnquiryNo") == "") { string EnquiryNo = EnquiryView::MakeBillNo(); dw_base.SetItemString(1, "EnquiryNo", EnquiryNo); } if (dw_base.GetItemString(1, "ValidDay") == "") { alert("ÇëÊäÈëÓÐЧÆÚ!"); return 1; } /*if(dw_base.GetItemString(1,"SupplierID")=="") { alert("¹©Ó¦ÉÌΪ¿Õ!"); return 1; }*/ if (dw_base.GetItemString(1, "Source") == "") { alert("ÇëÊäÈëѯ¼ÛÀà±ð!"); return 1; } string Packing = ""; string Packings = ""; Adjust(); for (int i = 1; i <= dw_goods.GetRowCount(); i++) { if (dw_goods.GetItemString(i, "ItemMiniQty") == "") { alert("ÇëÊäÈëÆð¶©Á¿!"); return 1; } if (dw_goods.GetItemString(i, "Picture") == "") { alert("Çë " + i.toString() + "ÐУ¬ÉÏ´«²úƷͼƬ!"); return 1; } if (dw_goods.GetItemString(i, "POPrice") == "" || dw_goods.GetItemString(i, "POPrice") == ".000") { alert("ÇëÊäÈë²É¹º¼Û!"); return 1; } if (dw_goods.GetItemString(i, "PriceType") == "") { alert("ÇëÊäÈë¼Û¸ñÀàÐÍ!"); return 1; } if (dw_goods.GetItemString(i, "SampleFee") == "") { alert("ÇëÊäÈë´òÑù·Ñ!"); return 1; } if (dw_goods.GetItemString(i, "TestFee") == "") { alert("ÇëÊäÈë²âÊÔ·Ñ!"); return 1; } if (dw_goods.GetItemString(i, "ModelFee") == "") { alert("ÇëÊäÈëÄ£¾ß·Ñ!"); return 1; } if (dw_goods.GetItemString(i, "VolumeDesc") == "") { alert("ÇëÊäÈë°ü×°³ßÂë!"); return 1; } if (dw_goods.GetItemString(i, "WarehousingReason") == "") { alert("ÇëÊäÈëÈë¿âÀíÓÉ!"); return 1; } /*if(dw_goods.GetItemString(i,"Packing") !="") { Packing = dw_goods.GetItemString(i,"Packing"); if(Packings=="") Packings = Packing; else if(Packings.find(Packing) < 0) Packings+=","+Packing; }*/ if (dw_goods.GetItemString(i, "Packing") == "") { alert("ÇëÊä°ü×°·½Ê½!"); return 1; } else { xml xx = ViewObject::RetrieveData("/sale/data/Enquiry/GetPacking", "str", dw_goods.GetItemString(i, "Packing")); string Results = xx.GetXmlDoc().text; int ResultsInt = Results.toInt(); if (ResultsInt == 0) { alert("µÚ" + i.toString() + "Ðаü×°·½Ê½´íÎó£¬ÇëÖØÐÂÑ¡Ôñ£¡"); return 1; } } } trace("********" + Packings + "*********"); } xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); dw_goods.DwUpdateAllToEx(x.GetXmlDoc()); dw_base.DwUpdateAllTo(x.GetXmlDoc()); //alert(x.GetXml()); string error = ""; arg.AddArg("content", x.GetXml()); if (url::get("/sale/data/Enquiry/update", arg.GetString(), x) != 1) { error = x.GetXmlDoc().text; alert(error); } else { string str = x.GetXmlDoc().documentElement.getAttribute("text"); if (str == "true") { dw_goods.ResetUpdateStatus(); dw_base.ResetUpdateStatus(); UpdateEnquiryLineID(); xaserverarg arg_ = new xaserverarg; arg_.setNativePointer(GetParam()); //trace("\r\nSource:"+arg_.GetArgString("Source")); if (arg_.GetArgString("Source") == "quote") InsertEnquiryPriceList(); else if (arg_.GetArgString("Source") == "pricebill") InsertEnquiryPriceListByEnquiryID(); alert("±£´æ³É¹¦!"); int hWnd = 0; if (arg_.GetArgString("Source") == "pricebill") { if (arg_.GetArgString("hWnd") != "") { hWnd = arg_.GetArgString("hWnd").toInt(); win32::PostMessage(hWnd, 0x401, "xmRefresh", 0); } } if (arg_.GetArgString("Source") == "") { if (arg_.GetArgString("hWnd") != "") { hWnd = arg_.GetArgString("hWnd").toInt(); win32::PostMessage(hWnd, 0x401, "xmReresh", 0); } } } else { alert("±£´æÊ§°Ü!"); } } if (x) x.Free(); return 1; } int InsertEnquiryPriceListByEnquiryID() { //trace("\r\nInsertEnquiryPriceListByEnquiryID Start!"); xml x = ViewObject::RetrieveData("/sale/data/Enquiry/InsertEnquiryPriceListByEnquiryID", "EnquiryID", dw_base.GetGuid(1)); //trace("\r\nInsertEnquiryPriceListByEnquiryID:" + dw_base.GetGuid(1)+" "+ x.GetXml()); return 1; } int InsertEnquiryPriceList() { xaserverarg arg = new xaserverarg; arg.setNativePointer(GetParam()); string EntityIDList = arg.GetArgString("EntityIDList"); xml x = ViewObject::RetrieveData("/sale/data/Enquiry/InsertEnquiryPriceList", "ItemList", EntityIDList); xml x1 = ViewObject::RetrieveData("/sale/data/Enquiry/Update/UpdateQuoteLine", "ItemList", EntityIDList); return 1; } int UpdateEnquiryLineID() { xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); int row = dw_base.GetRow(); if (row < 1) return 0; string EnquiryID = dw_base.GetGuid(1); xml x = ViewObject::RetrieveData("/sale/data/Enquiry/Update/UpdateEnquiryLineID", "EnquiryID", EnquiryID); return 1; } int OnSave1() { dw_base.AcceptText(); dw_goods.AcceptText(); if (dw_base.GetItemString(1, "EnquiryNo") == "") { string EnquiryNo = EnquiryView::MakeBillNo(); dw_base.SetItemString(1, "EnquiryNo", EnquiryNo); } if (dw_base.GetItemString(1, "ValidDay") == "") { alert("ÇëÊäÈëÓÐЧÆÚ!"); return 1; } if (dw_base.GetItemString(1, "Source") == "") { alert("ÇëÊäÈëѯ¼ÛÀà±ð!"); return 1; } string Packing = ""; string Packings = ""; for (int i = 1; i <= dw_goods.GetRowCount(); i++) { if (dw_goods.GetItemString(i, "ItemMiniQty") == "") { alert("ÇëÊäÈëÆð¶©Á¿!"); return 1; } if (dw_goods.GetItemString(i, "Picture") == "") { alert("Çë " + i.toString() + "ÐУ¬ÉÏ´«²úƷͼƬ!"); return 1; } if (dw_goods.GetItemString(i, "POPrice") == "" || dw_goods.GetItemString(i, "POPrice") == ".000") { alert("ÇëÊäÈë²É¹º¼Û!"); return 1; } if (dw_goods.GetItemString(i, "PriceType") == "") { alert("ÇëÊäÈë¼Û¸ñÀàÐÍ!"); return 1; } if (dw_goods.GetItemString(i, "SampleFee") == "") { alert("ÇëÊäÈë´òÑù·Ñ!"); return 1; } if (dw_goods.GetItemString(i, "TestFee") == "") { alert("ÇëÊäÈë²âÊÔ·Ñ!"); return 1; } if (dw_goods.GetItemString(i, "ModelFee") == "") { alert("ÇëÊäÈëÄ£¾ß·Ñ!"); return 1; } if (dw_goods.GetItemString(i, "VolumeDesc") == "") { alert("ÇëÊäÈë°ü×°³ßÂë!"); return 1; } if (dw_goods.GetItemString(i, "WarehousingReason") == "") { alert("ÇëÊäÈëÈë¿âÀíÓÉ!"); return 1; } if (dw_goods.GetItemString(i, "Packing") != "") { Packing = dw_goods.GetItemString(i, "Packing"); if (Packings == "") Packings = Packing; else if (Packings.find(Packing) < 0) Packings += "," + Packing; } } trace("********" + Packings + "*********"); xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); dw_base.DwUpdateAllTo(x.GetXmlDoc()); msxml::IXMLDOMElement ele = x.GetXmlDoc().documentElement; xml x1 = xml::Make(); dw_goods.DwUpdateAllToEx(x1.GetXmlDoc()); msxml::IXMLDOMNodeList items = x1.GetXmlDoc().selectNodes("Enquiry/Item"); int len = items.length; bool processed = false; msxml::IXMLDOMNode child; msxml::IXMLDOMNode nodeColumn; msxml::IXMLDOMElement eleItem; msxml::IXMLDOMElement eleColumn; string guid; for (int k = 0; k < len; k++) { msxml::IXMLDOMElement e = items.item(k); /*processed = false; msxml::IXMLDOMNode col = e.selectSingleNode("QuoteNo"); if(col) { if(col.text !="") { child = e.cloneNode(-1); ele.appendChild(child); child.release(); processed = true; } col.release(); } if(!processed) {*/ string itemNew = e.getAttribute("update.new"); string itemDelete = e.getAttribute("update.delete"); string itemModify = e.getAttribute("update.modify"); if (itemDelete == "1") { eleItem = x.GetXmlDoc().createElement("Item"); eleItem.setAttribute("update.modify", "1"); guid = e.getAttribute("guid"); eleItem.setAttribute("guid", guid); eleColumn = x.GetXmlDoc().createElement("LineType"); eleColumn.setAttribute("update.modify", "1"); //delete eleColumn.text = "1"; eleItem.appendChild(eleColumn); ele.appendChild(eleItem); eleColumn.release(); eleItem.release(); processed = true; } else if (itemModify == "1") { if (itemNew != "1") { //update origin row eleItem = x.GetXmlDoc().createElement("Item"); eleItem.setAttribute("update.modify", "1"); guid = e.getAttribute("guid"); eleItem.setAttribute("guid", guid); eleColumn = x.GetXmlDoc().createElement("RealEnquiryLineID"); eleColumn.setAttribute("update.modify", "1"); guid = publiccode::GetGuid(); eleColumn.text = guid; eleItem.appendChild(eleColumn); eleColumn.release(); eleColumn = x.GetXmlDoc().createElement("LineType"); eleColumn.setAttribute("update.modify", "1"); eleColumn.text = "1"; //modify eleItem.appendChild(eleColumn); ele.appendChild(eleItem); eleColumn.release(); eleItem.release(); //insert new row eleItem = e.cloneNode(-1); eleItem.setAttribute("update.modify", "1"); eleItem.setAttribute("update.new", "1"); eleItem.setAttribute("guid", publiccode::GetGuid()); eleColumn = x.GetXmlDoc().createElement("LineType"); eleColumn.setAttribute("update.modify", "1"); eleColumn.text = "0"; //normal eleItem.appendChild(eleColumn); eleColumn.release(); nodeColumn = e.selectSingleNode("ModifyDate"); if (!nodeColumn) eleColumn = x.GetXmlDoc().createElement("ModifyDate"); else eleColumn = nodeColumn; eleColumn.text = publiccode::GetCurrentDate(); eleItem.appendChild(eleColumn); eleColumn.release(); ele.appendChild(eleItem); eleItem.release(); } else { guid = e.getAttribute("guid"); child = e.cloneNode(-1); child.selectSingleNode("RealEnquiryLineID").text = guid; child.selectSingleNode("RelEnquiryLineID").text = guid; ele.appendChild(child); //trace(child.xml); child.release(); } } //} e.release(); } x1.Free(); string error = ""; arg.AddArg("content", x.GetXml()); if (url::get("/sale/data/Enquiry/update", arg.GetString(), x) != 1) { error = x.GetXmlDoc().text; alert(error); } else { string str = x.GetXmlDoc().documentElement.getAttribute("text"); if (str == "true") { alert("±£´æ³É¹¦!"); //dw_goods.ResetUpdateStatus(); //dw_base.ResetUpdateStatus(); OnRetrieve(dw_base.GetItemString(1, "EnquiryNo")); } else { alert("±£´æÊ§°Ü!"); } } if (x) x.Free(); return 1; } int ImportProductByText(string str) { string CustomerID = dw_base.GetItemString(1, "CustomerID"); //trace("Customer:"+CustomerID); xml x; if (CustomerID == "") x = QuoteView::LookupProductsByText(str); else x = QuoteView::LookupProductsByText(str, CustomerID); if (!x) return 1; msxml::IXMLDOMNodeList items = x.GetXmlDoc().selectNodes("/Items/Item"); trace("********" + x.GetXml() + "********"); int len = items.length; if (str.find(" ") < 0 && len > 0) len = 1; for (int i = 0; i < len; i++) { msxml::IXMLDOMElement e = items.item(i); dw_goods.InsertRow(0); int nRow = dw_goods.GetRowCount(); SetSeqNo(dw_goods, "SeqNo", nRow); dw_goods.SetItemString(nRow, "UOMCode", "007"); dw_goods.SetItemDisplayString(nRow, "UOMCode", "PCS"); dw_goods.SetItemString(nRow, "KOPCode", "120"); dw_goods.SetItemDisplayString(nRow, "KOPCode", "CTNS"); dw_goods.SetItemString(nRow, "SKUNo", e.getAttribute("SKUNo")); dw_goods.SetItemString(nRow, "ItemID", e.getAttribute("SKUID")); //dw_goods.SetItemString(nRow,"ItemName",e.getAttribute("EName")); dw_goods.SetItemString(nRow, "ItemName", e.getAttribute("CName")); dw_goods.SetItemString(nRow, "GoodsNo", e.getAttribute("GoodsNo")); dw_goods.SetItemString(nRow, "CustomerItemNo", e.getAttribute("CustomerItemNo")); dw_goods.SetItemString(nRow, "Packing", e.getAttribute("Packing")); dw_goods.SetItemString(nRow, "VolumeDesc", e.getAttribute("VolumeDesc")); dw_goods.SetItemString(nRow, "PackingRate", e.getAttribute("QtyPerPkg")); dw_goods.SetItemString(nRow, "InnerQty", e.getAttribute("InnerQty")); dw_goods.SetItemString(nRow, "VATRefundRate", e.getAttribute("VATRefundRate")); dw_goods.SetItemString(nRow, "VATRate", e.getAttribute("VATRate")); dw_goods.SetItemString(nRow, "HSCode", e.getAttribute("HSCode")); //trace("+++++"+e.getAttribute("Picture")+"+++++"); dw_goods.SetItemString(nRow, "Picture", e.getAttribute("Picture")); if (dw_goods.GetItemString(nRow, "VolumeDesc") != "" && dw_goods.GetItemString(nRow, "Packages") != "") { int qty = EvalQtyPerFCL45H(nRow); dw_goods.SetItemString(nRow, "Packages45H", qty.toString()); dw_goods.SetItemDouble(nRow, "TransportationFee", 5000.0 / qty); } /* dw_goods.SetItemString(nRow,"NwPerPkg",e.getAttribute("NwPerPkg")); dw_goods.SetItemString(nRow,"GwPerPkg",e.getAttribute("GwPerPkg")); dw_goods.SetItemString(nRow,"QTYPerPk",e.getAttribute("QTYPerPk")); dw_goods.SetItemString(nRow,"InnerQty",e.getAttribute("InnerQty")); */ } int row = dw_goods.GetRow(); if (row >= 1) { imageview im = GetControl("im1"); im.ResetEx(); string skuno = dw_goods.GetItemString(row, "SKUNo"); OnShowImage(skuno, row); im.Redraw(); } return 1; } double EvalCost(int row) { double cost = 0.0; cost += dw_goods.GetItemDouble(row, "POPrice"); cost += dw_goods.GetItemDouble(row, "PaperCardPrice"); cost += dw_goods.GetItemDouble(row, "TransportationFee"); cost += dw_goods.GetItemDouble(row, "OtherFee"); cost += dw_goods.GetItemDouble(row, "ManagementFee"); return cost; } double EvalRefund(int row) { double VATRefundRate = dw_goods.GetItemDouble(row, "VATRefundRate"); double VATRefund = dw_goods.GetItemDouble(row, "POPrice") * VATRefundRate / 117.0; VATRefund += dw_goods.GetItemDouble(row, "PaperCardPrice") * 13.0 / 117.0; return VATRefund; } int EvalQtyPerFCL45H(int row) { double vol = EvalVol(dw_goods.GetItemString(row, "VolumeDesc")); double packages = dw_goods.GetItemDouble(row, "Packages"); return (packages * 67.0 / vol).toInt(); } double EvalUnitProfit(int row) { double ExchangeRate = dw_base.GetItemDouble(1, "ExchangeRate"); double FobUnitPrice = dw_goods.GetItemDouble(row, "FobUnitPrice"); double UnitCost = dw_goods.GetItemDouble(row, "UnitCost"); double VATRefund = dw_goods.GetItemDouble(row, "VATRefund"); return ExchangeRate * FobUnitPrice - UnitCost + VATRefund; } double EvalProfitRate(int row) { double UnitProfit = EvalUnitProfit(row); double UnitCost = dw_goods.GetItemDouble(row, "UnitCost"); return UnitProfit / UnitCost; } double EvalSaleProfitRate(int row) { double UnitProfit = EvalUnitProfit(row); double FobUnitPrice = dw_goods.GetItemDouble(row, "FobUnitPrice"); return UnitProfit / FobUnitPrice; } double EvalExchangeCostRate(int row) { double FobUnitPrice = dw_goods.GetItemDouble(row, "FobUnitPrice"); double UnitCost = dw_goods.GetItemDouble(row, "UnitCost"); double VATRefund = dw_goods.GetItemDouble(row, "VATRefund"); return (UnitCost - VATRefund) / FobUnitPrice; } double EvalTransportationFee(int row) { double vol = EvalVol(dw_goods.GetItemString(row, "VolumeDesc")); double packages = dw_goods.GetItemDouble(row, "Packages"); return 80 * vol / packages; } double EvalVol(string value) { double vol = 1.0; string volstr = value; int pos1 = volstr.find("*"); int pos2 = volstr.find("X"); int pos3 = volstr.find("x"); int pos = pos1; //trace("pos: "+ pos.toString() + "pos1: "+ pos1.toString() + "pos2: "+ pos2.toString() +"pos3: "+ pos3.toString()); if (pos2 > 0 && pos == -1) pos = pos2; if (pos2 >= 0 && pos2 < pos) pos = pos2; //trace("pos: "+ pos.toString() + "pos1: "+ pos1.toString() + "pos2: "+ pos2.toString() +"pos3: "+ pos3.toString()); if (pos3 > 0 && pos == -1) pos = pos3; if (pos3 >= 0 && pos3 < pos) pos = pos3; //trace("pos: "+ pos.toString() + "pos1: "+ pos1.toString() + "pos2: "+ pos2.toString() +"pos3: "+ pos3.toString()); while (pos >= 0) { string tm = volstr.left(pos); volstr = volstr.mid(pos + 1, 9999); vol *= tm.toDouble(); pos1 = volstr.find("*"); pos2 = volstr.find("X"); pos3 = volstr.find("x"); pos = pos1; if (pos2 > 0 && pos == -1) pos = pos2; if (pos2 >= 0 && pos2 < pos) pos = pos2; if (pos3 > 0 && pos == -1) pos = pos3; if (pos3 >= 0 && pos3 < pos) pos = pos3; } if (volstr != "") vol *= volstr.toDouble(); return vol / 1000000.0; } int OnShare() { xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("EntityID", dw_base.GetGuid(1)); //arg.AddArg("EntityName", GetEntityName(0)); arg.AddArg("EntityName", "Enquiry3"); OpenWindow("dev:xpage[UserGroupShare.vx]", cast(arg as int)); return 1; } int OnItemChanged(ref TNotifyEvent evt, int p) { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); string colname = hdr.colname; string value = hdr.data; int row = hdr.row; double VATRefund = 0.0; double VATRefundRate = 0.0; if ((colname == "GoodsNo" || colname == "CustomerItemNo") && value != "") { if (colname == "CustomerItemNo") { if (dw_goods.GetItemString(row, "GoodsNo") != "") return 1; } xml x; string CustomerID = dw_base.GetItemString(1, "CustomerID"); string sval = value; if (colname == "GoodsNo") { if (CustomerID != "") sval = "gs:" + value; else sval = value; } if (colname == "CustomerItemNo") /*sval="cs:"+value; if(CustomerID !="") x = QuoteView::LookupProductsByText(sval,CustomerID ); else x = QuoteView::LookupProductsByText(sval);*/ sval = value; x = ViewObject::RetrieveData("/sale/data/Quote/LookGDN", "str", sval); if (!x) return 1; msxml::IXMLDOMNodeList items = x.GetXmlDoc().selectNodes("/Items/Item"); trace(x.GetXml()); int len = items.length; if (len == 0) { if (colname == "GoodsNo") { alert("ûÓд˹«Ë¾ÐͺÅ!"); dw_goods.SetItemString(dw_goods.GetRow(), "GoodsNo", ""); } return 1; } if (len >= 1) { msxml::IXMLDOMElement e = items.item(0); int nRow = dw_goods.GetRow(); dw_goods.SetItemString(nRow, "SKUNo", e.getAttribute("SKUNo")); dw_goods.SetItemString(nRow, "ItemID", e.getAttribute("SKUID")); dw_goods.SetItemString(nRow, "ItemName", e.getAttribute("CName")); if (colname == "CustomerItemNo")dw_goods.SetItemString(nRow, "GoodsNo", e.getAttribute("GoodsNo")); if (colname == "GoodsNo")dw_goods.SetItemString(nRow, "CustomerItemNo", e.getAttribute("CustomerItemNo")); dw_goods.SetItemString(nRow, "Packing", e.getAttribute("Packing")); dw_goods.SetItemString(nRow, "InnerQty", e.getAttribute("InnerQty")); dw_goods.SetItemString(nRow, "PackingRate", e.getAttribute("PackingRate")); dw_goods.SetItemString(nRow, "VolumeDesc", e.getAttribute("VolumeDesc")); dw_goods.SetItemString(nRow, "Packages", e.getAttribute("QTYPerPkg")); dw_goods.SetItemString(nRow, "SupplierID", e.getAttribute("SupplierID")); dw_goods.SetItemDisplayString(nRow, "SupplierID", e.getAttribute("SupplierID1")); dw_goods.SetItemString(nRow, "POCreatorID", e.getAttribute("POCreatorID")); dw_goods.SetItemDisplayString(nRow, "POCreatorID", e.getAttribute("POCreatorID1")); dw_goods.SetItemString(nRow, "Picture", e.getAttribute("Picture")); if (dw_goods.GetItemString(nRow, "VolumeDesc") != "" && dw_goods.GetItemString(nRow, "Packages") != "") { int qty1 = EvalQtyPerFCL45H(nRow); dw_goods.SetItemString(nRow, "Packages45H", qty1.toString()); dw_goods.SetItemDouble(nRow, "TransportationFee", 5000.0 / qty1); } dw_goods.Redraw(); } } else if (colname == "POPrice" || colname == "PaperCardPrice" || colname == "TransportationFee" || colname == "OtherFee" || colname == "ManagementFee") { dw_goods.SetItemDouble(row, "UnitCost", EvalCost(row)); if ((colname == "POPrice" || colname == "PaperCardPrice") && dw_goods.GetItemString(row, "VATRefundRate") != "") { dw_goods.SetItemDouble(row, "VATRefund", EvalRefund(row)); } } else if (colname == "VATRefundRate" && value != "") { dw_goods.SetItemDouble(row, "VATRefund", EvalRefund(row)); } else if (colname == "VolumeDesc" || colname == "Packages") { if (dw_goods.GetItemString(row, "VolumeDesc") != "" && dw_goods.GetItemString(row, "Packages") != "") { int qty = EvalQtyPerFCL45H(row); dw_goods.SetItemString(row, "Packages45H", qty.toString()); dw_goods.SetItemDouble(row, "TransportationFee", EvalTransportationFee(row)); dw_goods.SetItemDouble(row, "UnitCost", EvalCost(row)); } } else if (colname == "FobUnitPrice") { string CurrencyCode = dw_base.GetItemString(1, "CurrencyCode"); string expRate = ""; string exchRate = ""; xml x0 = ViewObject::RetrieveData("/sale/data/GDN3/profit/param", "item", "dcomp_amt"); if (x0.GetXmlDoc().selectSingleNode("root/item/@value")) expRate = x0.GetXmlDoc().selectSingleNode("root/item/@value").text; x0 = ViewObject::RetrieveData("/sale/data/GDN3/profit/param", "item", "cryrate"); if (x0.GetXmlDoc().selectSingleNode("root/item/@value")) exchRate = x0.GetXmlDoc().selectSingleNode("root/item/@value").text; double r1 = exchRate.toDouble(); double r2 = expRate.toDouble(); double val = value.toDouble(); if (CurrencyCode == "RMB" || CurrencyCode == "CNY") { if (exchRate != "") { double ManagementFee = (val / r1) * r2; double OtherFee = (val / r1) * 0.2; dw_goods.SetItemDouble(row, "ManagementFee", ManagementFee); dw_goods.SetItemDouble(row, "OtherFee", OtherFee); } } else { dw_goods.SetItemDouble(row, "ManagementFee", val * 0.15); dw_goods.SetItemDouble(row, "OtherFee", val * 0.2); } dw_goods.SetItemDouble(row, "UnitCost", EvalCost(row)); } if (dw_goods.GetItemString(row, "FobUnitPrice") != "" && dw_goods.GetItemString(row, "POPrice") != "" && dw_goods.GetItemString(row, "VolumeDesc") != "" && dw_goods.GetItemString(row, "Packages") != "") { dw_goods.SetItemDouble(row, "UnitProfit", EvalUnitProfit(row)); dw_goods.SetItemDouble(row, "ProfitRate", EvalProfitRate(row)); dw_goods.SetItemDouble(row, "SaleProfitRate", EvalSaleProfitRate(row)); dw_goods.SetItemDouble(row, "ExchangeCostRate", EvalExchangeCostRate(row)); } dw_goods.SetItemString(row, "ModifyDate", publiccode::GetCurrentDate()); dw_goods.Redraw(); return 1; } int OnBaseItemChanged(ref TNotifyEvent evt, int p) { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); string colname = hdr.colname; string value = hdr.data; string dwname = "dw_base"; if (value != "") { //trace("\r\nsupplierid:"+value); msxml::IXMLDOMNodeList nlist = GetElement().selectNodes("//*[@name='" + dwname + "']/trans[@for='" + colname + "']"); ViewObject::TransData(nlist, dw_base, hdr.row, colname, value); } if (colname == "ExchangeRate") { if (dw_goods.GetRowCount() > 0) { for (int i = 1; i <= dw_goods.GetRowCount(); i++) { dw_goods.SetItemDouble(i, "UnitProfit", EvalUnitProfit(i)); dw_goods.SetItemDouble(i, "ProfitRate", EvalProfitRate(i)); dw_goods.SetItemDouble(i, "SaleProfitRate", EvalSaleProfitRate(i)); dw_goods.SetItemDouble(i, "ExchangeCostRate", EvalExchangeCostRate(i)); } } dw_goods.Redraw(); } return 1; } int OnPriceEval() { OpenWindow("dev:xpage[eval.Enquiry3.vx]", cast(dw_goods as int)); return 1; } int OnRowChanged(ref TNotifyEvent evt, int p) { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); int row = hdr.row; imageview im = GetControl("im1"); im.ResetEx(); string skuno = dw_goods.GetItemString(row, "SKUNo"); OnShowImage(skuno, row); im.Redraw(); return 1; } int OnShowImage() { int rowCount = dw_goods.GetRowCount(); string skunos; for (int i = 1; i <= rowCount; i++) { string skuno = dw_goods.GetItemString(i, "SKUNo"); if (i == 1) skunos = skuno; else skunos += "," + skuno; } xaserverarg arg_pic = new xaserverarg; arg_pic.setNativePointer(arg_pic.CreateInstance()); arg_pic.AddArg("SKUNoList", skunos); arg_pic.AddArg("ParentWindow", GetHWND().toString()); arg_pic.AddArg("OpenFlag", "1"); OpenWindow("dev:xpage[SKU.PictureView.Product3.vx]", cast(arg_pic as int)); return 1; } int OnShowImage(string skuno, int row) { imageview im = GetControl("im1"); xml xp = new xml; xp.setNativePointer(xml::CreateInstance()); xaserverarg arg_pic = new xaserverarg; arg_pic.setNativePointer(arg_pic.CreateInstance()); arg_pic.AddArg("SKUNo", skuno); string res = "/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo"; string customerID = dw_base.GetItemString(1, "CustomerID"); string customerItemNo = dw_goods.GetItemString(row, "CustomerItemNo"); if (customerItemNo != "") { //trace(customerID+":"+customerItemNo); res = "/sale/data/ProductLibrary3/pref/picture/customer/imagelistSKUNo"; arg_pic.AddArg("CustomerID", customerID); arg_pic.AddArg("CustomerItemNo", customerItemNo); } bool hasIamge = false; if (url::get(res, arg_pic.GetString(), xp) != 1) { //trace(xp.GetXml()); return 1; } else { //trace(xp.GetXml()); msxml::IXMLDOMNodeList nlistp = xp.GetXmlDoc().selectNodes("ImageList/image"); int lenp = nlistp.length; for (int ip = 0; ip < lenp; ip++) { hasIamge = true; 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, goodno); } } if (!hasIamge) { res = "/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo"; if (url::get(res, arg_pic.GetString(), xp) != 1) { //trace(xp.GetXml()); return 1; } else { nlistp = xp.GetXmlDoc().selectNodes("ImageList/image"); lenp = nlistp.length; for (ip = 0; ip < lenp; ip++) { xitem = nlistp.item(ip); picname = xitem.selectSingleNode("PicPath").text; goodno = xitem.selectSingleNode("GoodsNo").text; if (picname == "/business/products/Thumbs//") picname = "/business/products/Thumbs/00/00000000-0000-0000-0000-000000000000.jpg"; im.AddImages(picname, goodno); } } } return 1; } int OnPrint() { if (dw_base.GetItemString(1, "EnquiryNo") == "") { alert("ÇëÏȱ£´æÊý¾Ý!"); return 1; } xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("EntityName", "Enquiry", ""); arg.AddArg("EntityID", dw_base.GetItemString(1, "EnquiryID"), ""); arg.AddArg("EntityNo", dw_base.GetItemString(1, "EnquiryNo"), ""); int p = arg.ptr_native_; openUrl("/sale/view/view.base/xpage/Template/PrintViewEx", p); return 1; } int ReSeqNo(string SeqNoColumn) { for (int i = 1; i <= dw_goods.GetRowCount(); i++) { dw_goods.SetItemString(i, SeqNoColumn, (i * 10).toString()); } dw_goods.Redraw(); return 1; } int OnAskGoodsNo() { int rowCount = dw_goods.GetRowCount(); string skunos = ""; for (int i = 1; i <= rowCount; i++) { if (dw_goods.GetItemString(i, "SKUNo") != "" && dw_goods.GetItemString(i, "GoodsNo") == "" && dw_goods.GetItemString(i, "Submitter") == "") { if (skunos == "") skunos = dw_goods.GetItemString(i, "SKUNo"); else skunos += "," + dw_goods.GetItemString(i, "SKUNo"); } } xaserverarg arg = ViewObject::MakeArg(); arg.AddArg("SKUNoList", skunos); OpenWindow("dev:xpage[Product.FetchNo.vx]", cast(arg as int)); return 1; } //ÃüÁî·¢²¼º¯Êý int OnCmdDispatch(string comdid) { if (comdid == "xmNewProduct") { //xaserverarg arg = new xaserverarg; //arg.setNativePointer(arg.CreateInstance()); openUrl("/sale/view/Enquiry3/xpage/quick/newestproduct", GetHWND()); return 1; } else if (comdid == "xmPrint") return OnPrint(); else if (comdid == "xmImage") return OnShowImage(); else if (comdid == "xmShare") return OnShare(); else if (comdid == "xmImportProduct") { string str = GetControl("goods").GetText(); str = str.trim(); if (str == "") { xaserverarg arg1 = new xaserverarg; arg1.setNativePointer(arg1.CreateInstance()); arg1.AddArg("HWND", GetHWND().toString()); arg1.AddArg("CustomerID", dw_base.GetItemString(1, "CustomerID")); OpenWindow("dev:xpage[Entity.Product.Select.vx]", cast(arg1 as int)); int row = dw_goods.GetRow(); if (row >= 1) { imageview im = GetControl("im1"); im.ResetEx(); string skuno = dw_goods.GetItemString(row, "SKUNo"); OnShowImage(skuno, row); im.Redraw(); } } else ImportProductByText(str); return 1; } else if (comdid == "xmSave") { OnSave(); return 1; } else if (comdid == "xmPriceEval") return OnPriceEval(); else if (comdid == "xmOpen") { xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); OpenWindow("dev:xpage[SOEnquiry.list.vx]", cast(arg as int)); if (arg.GetArgString("id") != "") return OnRetrieve(arg.GetArgString("id")); return 1; } else if (comdid == "xmDeleteRow") { if (dw_goods.GetItemString(dw_goods.GetRow(), "QuoteNo") != "") { alert("²úÆ·Òѱ»Ó¦Ó㬲»ÄÜɾ³ý"); return 1; } dw_goods.DeleteRow(0); return 1; } else if (comdid == "xmBOMSchema") { OpenWindow("dev:xpage[ProductSchema.vx]", 0); return 1; } else if (comdid == "xmProductDesc") { xaserverarg arg2 = new xaserverarg; arg2.setNativePointer(arg2.CreateInstance()); int row2 = dw_goods.GetRow(); if (row2 < 1) return 0; string str2 = dw_goods.GetItemString(row2, "ProductDesc"); arg2.AddArg("value", str2); OpenWindow("dev:xpage[memo.edit.new.vx]", arg2.getNativePointer()); if (arg2.GetArgString("comdid") == "xmOK") { str2 = arg2.GetArgString("value"); dw_goods.AcceptText(); dw_goods.SetItemString(row2, "ProductDesc", str2); dw_goods.Redraw(); } return 1; } else if (comdid == "xmReSeqNo") { if (win32::MessageBox(GetHWND(), "ÊÇ·ñÖØÖÃÐòºÅ!", "Ìáʾ1", 1) == 2) return 1; return ReSeqNo("SeqNo"); } else if (comdid == "xmAddRow") { int nRow = dw_goods.InsertRow(0); SetSeqNo(dw_goods, "SeqNo", nRow); dw_goods.SetItemString(nRow, "UOMCode", "007"); dw_goods.SetItemDisplayString(nRow, "UOMCode", "PCS"); dw_goods.SetItemString(nRow, "KOPCode", "120"); dw_goods.SetItemDisplayString(nRow, "KOPCode", "CTNS"); xaserverarg arg3 = new xaserverarg; arg3.setNativePointer(arg3.CreateInstance()); int row3 = dw_goods.GetRow(); if (row3 < 1) return 0; dw_goods.SetItemString(nRow, "SKUNo", dw_goods.GetItemString(row3, "SKUNo")); dw_goods.SetItemString(nRow, "ItemID", dw_goods.GetItemString(row3, "ItemID")); return 1; } else if (comdid == "xmClose") { CloseWindow(); return 1; } else if (comdid.find("ImportXml:", 0) == 0) { string strImport = comdid.mid("ImportXml:".length(), 9999); ImportProductByText(strImport); return 1; } else if (comdid == "xmAskGoodsNo") { return OnAskGoodsNo(); } return 0; } int OnImgDBClicked(ref TNotifyEvent evt, int pr) { ref IMGNNMHDR nmtv = evt.pnmh; string src = nmtv.path; /*if(src.length() > 60) src = src.right(44); else src=src.mid(src.find("Thumbs", 0)+6, 50); */ xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); //arg.AddArg("src","/business/products/chanpin"+src); arg.AddArg("src", src); //win::OpenWindow("dev:xpage[BigPicture.vx]",arg); int h = openUrl("/sale/view/ProductLibrary/xpage/bigpictureview", arg); return 1; /* xwin x = new xwin; x.setNativePointer(h); m_winHwnd = x.GetHWND(); string sh = doc.GetXml(); int p = cast(sh as int); win32::SendMessage(m_winHwnd, 0x401, p, 0); */ return 1; } //ÃüÁî´¦Àíʼþ int OnXCommand(ref TXCommandEvent evt, int param) { return OnCmdDispatch(evt.pStrID); } int OnItemAskStyle(ref TNotifyEvent evt, int p) { int DMS_CSSSTYLE = 0x8; ref DWASKSTYLENMHDR hdr = trust(evt.pnmh as ref DWASKSTYLENMHDR); int row = hdr.row; int col = hdr.col; string colname = hdr.colname; int rows = dw_goods.GetRowCount(); if (row < 1 || row > rows) { return 1; } if (colname == "POPrice") { if (dw_goods.GetItemTipString(row, colname) != "") { hdr.mask = DMS_CSSSTYLE; hdr.cssstyle = "color:#cc0000"; } } return 1; } int OnAttachEvent() { //°ó¶¨¹¤¾ßÌõµã»÷ʼþ AttachEvent("WM_XCOMMAND", OnXCommand); //»ñÈ¡½¹µãʼþ£¬ÓÃÓÚÖØÖù¤¾ßÌõ AttachEvent("WM_SETFOCUS", OnSetFocus); AttachEvent("dw_goods", "DWV_ITEMCHANGED", OnItemChanged); AttachEvent("dw_base", "DWV_ITEMCHANGED", OnBaseItemChanged); AttachEvent("im1", "IMG_LDBCLICK", OnImgDBClicked); AttachEvent("dw_goods", "DWV_ROWFOCUSCHANGED", OnRowChanged); AttachCloseWindow(); AttachEvent("dw_goods", "DWV_ASKSTYLE", OnItemAskStyle); return 1; } int OnRetrieve(string id) { xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("id", id); if (getUrl("/sale/data/Enquiry/maint", arg.GetString(), x) != 1) { alert(x.GetXmlDoc().text); return -1; } else { //alert(x.GetXml()); dw_base.Retrieve(x); dw_goods.Retrieve(x); dw_base.Redraw(); dw_goods.Redraw(); if (dw_goods.GetRowCount() > 0) { imageview im = GetControl("im1"); im.ResetEx(); string skuno = dw_goods.GetItemString(1, "SKUNo"); OnShowImage(skuno, 1); im.Redraw(); } //x.LoadXml(""); //dw_base.RetrieveDiff(x); //dw_goods.RetrieveDiff(x); //dw_goods.SetItemTipString(1,"POPrice","21.4 2018/07/08\r\n23.4 2018/07/12"); } return 1; } int Oncopy(string EnquiryID, string ItemID) { xaserverarg arg = new xaserverarg; arg.setNativePointer(GetParam()); dw_base.SetItemString(1, "ValidDay", arg.GetArgString("ValidDay")); dw_base.SetItemString(1, "SONo", arg.GetArgString("SONo")); dw_base.SetItemString(1, "Remark", arg.GetArgString("Remark")); dw_base.SetItemString(1, "Source", arg.GetArgString("Source")); dw_base.SetItemString(1, "PayTerm", arg.GetArgString("PayTerm")); dw_base.SetItemString(1, "SupplierID", arg.GetArgString("SupplierID")); dw_base.SetItemDisplayString(1, "SupplierID", arg.GetArgString("SupplierID/@_displaystring")); dw_base.SetItemString(1, "CustomerContactName", arg.GetArgString("CustomerContactName")); dw_base.SetItemString(1, "ContactTel", arg.GetArgString("ContactTel")); string sdate = publiccode::GetCurrentDate(); dw_base.SetItemString(1, "EnquiryDate", sdate); string suserid = publiccode::GetUser().id; string susername = publiccode::GetUser().name; dw_base.SetItemString(1, "SalespersonID", suserid); dw_base.SetItemDisplayString(1, "SalespersonID", susername); dw_base.SetItemString(1, "CompanyID", "E9E3C542-062C-4957-B8F4-9B92C3E351FC"); dw_base.SetItemDisplayString(1, "CompanyID", "Äþ²¨¼Ò¶û¼Ñ½ø³ö¿ÚÓÐÏÞ¹«Ë¾"); //xml x = QuoteView::Oncopy(EnquiryID,ItemID); xml x = ViewObject::RetrieveData("/sale/data/Enquiry/Oncopy", "EnquiryID", EnquiryID, "ItemID", ItemID); if (!x) return 1; //alert(x.GetXml()); msxml::IXMLDOMNodeList items = x.GetXmlDoc().selectNodes("/Enquiry/Item"); int len = items.length; for (int i = 0; i < len; i++) { msxml::IXMLDOMElement e = items.item(i); dw_goods.InsertRow(i); int nRow = dw_goods.GetRow(); SetSeqNo(dw_goods, "SeqNo", nRow); dw_goods.SetItemString(nRow, "UOMCode", "007"); dw_goods.SetItemDisplayString(nRow, "UOMCode", "PCS"); dw_goods.SetItemString(nRow, "KOPCode", "120"); dw_goods.SetItemDisplayString(nRow, "KOPCode", "CTNS"); if (e.selectSingleNode("ItemName"))dw_goods.SetItemString(nRow, "ItemName", e.selectSingleNode("ItemName").text); if (e.selectSingleNode("GoodsNo"))dw_goods.SetItemString(nRow, "GoodsNo", e.selectSingleNode("GoodsNo").text); if (e.selectSingleNode("SKUNo"))dw_goods.SetItemString(nRow, "SKUNo", e.selectSingleNode("SKUNo").text); if (e.selectSingleNode("ItemMiniQty"))dw_goods.SetItemString(nRow, "ItemMiniQty", e.selectSingleNode("ItemMiniQty").text); if (e.selectSingleNode("Picture"))dw_goods.SetItemString(nRow, "Picture", e.selectSingleNode("Picture").text); if (e.selectSingleNode("ItemID"))dw_goods.SetItemString(nRow, "ItemID", e.selectSingleNode("ItemID").text); if (e.selectSingleNode("ProductDesc"))dw_goods.SetItemString(nRow, "ProductDesc", e.selectSingleNode("ProductDesc").text); if (e.selectSingleNode("Packing"))dw_goods.SetItemString(nRow, "Packing", e.selectSingleNode("Packing").text); if (e.selectSingleNode("POPrice"))dw_goods.SetItemString(nRow, "POPrice", e.selectSingleNode("POPrice").text); if (e.selectSingleNode("PriceType"))dw_goods.SetItemString(nRow, "PriceType", e.selectSingleNode("PriceType").text); if (e.selectSingleNode("InnerQty"))dw_goods.SetItemString(nRow, "InnerQty", e.selectSingleNode("InnerQty").text); if (e.selectSingleNode("PackingRate"))dw_goods.SetItemString(nRow, "PackingRate", e.selectSingleNode("PackingRate").text); if (e.selectSingleNode("VolumeDesc"))dw_goods.SetItemString(nRow, "VolumeDesc", e.selectSingleNode("VolumeDesc").text); if (e.selectSingleNode("SampleFee"))dw_goods.SetItemString(nRow, "SampleFee", e.selectSingleNode("SampleFee").text); if (e.selectSingleNode("TestFee"))dw_goods.SetItemString(nRow, "TestFee", e.selectSingleNode("TestFee").text); if (e.selectSingleNode("ModelFee"))dw_goods.SetItemString(nRow, "ModelFee", e.selectSingleNode("ModelFee").text); if (e.selectSingleNode("BOMPartNo"))dw_goods.SetItemString(nRow, "BOMPartNo", e.selectSingleNode("BOMPartNo").text); if (e.selectSingleNode("ModifyDate"))dw_goods.SetItemString(nRow, "ModifyDate", e.selectSingleNode("ModifyDate").text); if (e.selectSingleNode("EnquiryDate"))dw_goods.SetItemString(nRow, "EnquiryDate", e.selectSingleNode("EnquiryDate").text); if (e.selectSingleNode("EnquiryPriceListID"))dw_goods.SetItemString(nRow, "EnquiryPriceListID", e.selectSingleNode("EnquiryPriceListID").text); if (e.selectSingleNode("RelEnquiryLineID"))dw_goods.SetItemString(nRow, "RelEnquiryLineID", e.selectSingleNode("RelEnquiryLineID").text); if (e.selectSingleNode("PirorEnquiryLineID"))dw_goods.SetItemString(nRow, "PirorEnquiryLineID", e.selectSingleNode("PirorEnquiryLineID").text); if (e.selectSingleNode("RealEnquiryLineID"))dw_goods.SetItemString(nRow, "RealEnquiryLineID", e.selectSingleNode("RealEnquiryLineID").text); if (e.selectSingleNode("category"))dw_goods.SetItemString(nRow, "category", e.selectSingleNode("category").text); if (dw_goods.GetItemString(nRow, "VolumeDesc") != "" && dw_goods.GetItemString(nRow, "Packages") != "") { int qty = EvalQtyPerFCL45H(nRow); dw_goods.SetItemString(nRow, "Packages45H", qty.toString()); dw_goods.SetItemDouble(nRow, "TransportationFee", 5000.0 / qty); } } return 1; } int OnInit() { //¹«Ë¾Ì§Í·¡¢±¨¼ÛÈË¡¢±¨¼ÛÈÕÆÚ string sdate = publiccode::GetCurrentDate(); dw_base.SetItemString(1, "EnquiryDate", sdate); string suserid = publiccode::GetUser().id; string susername = publiccode::GetUser().name; dw_base.SetItemString(1, "SalespersonID", suserid); dw_base.SetItemDisplayString(1, "SalespersonID", susername); dw_base.SetItemString(1, "CompanyID", "E9E3C542-062C-4957-B8F4-9B92C3E351FC"); dw_base.SetItemDisplayString(1, "CompanyID", "Äþ²¨¼Ò¶û¼Ñ½ø³ö¿ÚÓÐÏÞ¹«Ë¾"); return 1; } /* pricebill: one of enquiry pricebill quote pricebill */ int RetrieveItemList(string items, string pricebill = "") { xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("ItemList", items); //alert(items); string dataurl = "/sale/data/Enquiry/maint/items"; if (pricebill == "pricebill") dataurl = "/sale/data/Enquiry/maint/pricelist/items"; if (pricebill == "quote") dataurl = "/sale/data/Enquiry/FetchItemListByQuoteItemID"; if (getUrl(dataurl, arg.GetString(), x) != 1) { alert(x.GetXmlDoc().text); return -1; } else { trace("*****" + x.GetXml() + "*****"); dw_goods.Retrieve(x); dw_goods.Redraw(); ReSeqNo("SeqNo"); if (dw_goods.GetRowCount() > 0) { if (dw_goods.GetItemString(1, "customerno")) { dw_base.SetItemString(1, "CustomerNo", dw_goods.GetItemString(1, "customerno")); } imageview im = GetControl("im1"); im.ResetEx(); string skuno = dw_goods.GetItemString(1, "SKUNo"); OnShowImage(skuno, 1); im.Redraw(); } } return 1; } int onload() { dw_goods = GetControl("dw_goods"); //dw_goods .openUrl("/sale/view/Enquiry3/template/goods"); dw_goods.openUrl("/sale/view/Enquiry3/template/item/pricelist"); dw_goods.SetColumnState("ItemID", false); //dw_goods.SetColumnState("Picture",false); dw_goods.SetColumnState("category", false); dw_goods.SetColumnState("RealEnquiryLineID", false); dw_goods.SetColumnState("RelEnquiryLineID", false); dw_goods.SetColumnState("BOMPartNo", false); dw_base = GetControl("dw_base"); if (GetParam()) { xaserverarg arg = new xaserverarg; arg.setNativePointer(GetParam()); sheetname = arg.GetArgString("sheetname"); if (sheetname == "tab_list2") { dw_base.openUrl("/sale/view/Enquiry3/template/base2"); //dw_base.SetItemString(1,"Source","¿Í»§Ñ¯¼Û"); dw_goods.SetColumnState("SupplierID", true); } else { dw_base.openUrl("/sale/view/Enquiry3/template/base"); //dw_base.SetItemString(1,"Source","¿Í»§Ñ¯¼Û"); dw_goods.SetColumnState("SupplierID", false); } dw_base.SetColHeaderHeight(0); dw_base.SetRowSelectorWidth(0); dw_base.SetHScrollState(false); dw_base.SetVScrollState(false); string EnquiryNo = arg.GetArgString("EnquiryNo"); string EnquiryID = arg.GetArgString("EnquiryID"); string ItemID = arg.GetArgString("ItemID"); if (EnquiryNo == "") EnquiryNo = arg.GetArgString("EntityNo"); if (EnquiryNo != "") { OnRetrieve(EnquiryNo); } else if (EnquiryID != "") { Oncopy(EnquiryID, ItemID); } else { OnInit(); if (arg.GetArgString("CustomerID") != "") { dw_base.SetItemDisplayString(1, "SupplierID", arg.GetArgString("CustomerName")); dw_base.ItemChangeTo(1, "SupplierID", arg.GetArgString("CustomerID")); string dwname = "dw_base"; string colname = "SupplierID"; string value = arg.GetArgString("CustomerID"); msxml::IXMLDOMNodeList nlist = GetElement().selectNodes("//*[@name='" + dwname + "']/trans[@for='" + colname + "']"); ViewObject::TransData(nlist, dw_base, 1, colname, value); } if (arg.GetArgString("EntityIDList") != "") { RetrieveItemList(arg.GetArgString("EntityIDList"), arg.GetArgString("Source")); } } } else OnInit(); OnAttachEvent(); dw_base.SetEditUpperMode(true); dw_goods.SetEditUpperMode(true); dw_goods.SetAskStyle(true); return 1; } int onloaded() { SetAgent(); return 1; } }; ]