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("<Enquiry/>");
|
//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;
|
}
|
};
|
]
|