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