#pragma once 
 | 
  
 | 
#include <wobject/xwin.hpp> 
 | 
#include <wobject/xurl.hpp> 
 | 
#include <memory.h> 
 | 
struct PUser 
 | 
{ 
 | 
    string id; 
 | 
    string no; 
 | 
    string name; 
 | 
    string userid; 
 | 
    string personid; 
 | 
    string deptid; 
 | 
    string deptname; 
 | 
    string orgid; 
 | 
    string orgname; 
 | 
    string jobid; 
 | 
    string jobname; 
 | 
    string positionid; 
 | 
    string positionname; 
 | 
    string teamid; 
 | 
    string teamname; 
 | 
    string groupid; 
 | 
    string groupname; 
 | 
    string unitid; 
 | 
    string unitname; 
 | 
    string companyid; 
 | 
    string companyname; 
 | 
    string tel; 
 | 
}; 
 | 
  
 | 
namespace publiccode  
 | 
{ 
 | 
    //È¡·þÎñÆ÷µ±Ç°Ê±¼ä 
 | 
    static string GetCurrentDate() 
 | 
    { 
 | 
        KXMLDOMDocument x; 
 | 
        string ls_date=L""; 
 | 
        if (xaserver::ExecXQuery(L"", L"[dev.GetDate]", L"", x) == 1) 
 | 
        { 
 | 
            KXMLDOMElement e = x.documentElement(); 
 | 
            if (e) 
 | 
                ls_date = e.selectSingleNode(L"@date").text();  //e.getAttribute(L"date"); 
 | 
        } 
 | 
        return ls_date; 
 | 
    } 
 | 
  
 | 
    //È¡µ±Ç°Óû§ 
 | 
    static PUser& GetUser(xstring id) 
 | 
    { 
 | 
        string userno = xaserver::GetUserNo(); 
 | 
        //trace(userno); 
 | 
        KXMLDOMDocument x; 
 | 
        xaserverarg arg; 
 | 
        if (id != L"") arg.AddArg(L"userid", id, L""); 
 | 
        if (xaserver::ExecXQuery(L"", L"[GetUserInfomation.xq]", arg.GetString(), x) != 1) 
 | 
        { 
 | 
            //trace(x.GetXml()); 
 | 
            //return "";//---return nil; 
 | 
        } 
 | 
        //trace(L"---%s",x.GetXml()); 
 | 
        KXMLDOMElement e = x.documentElement(); 
 | 
        PUser& p = *(new PUser); 
 | 
        ::memset(&p, 0,sizeof(PUser)); 
 | 
        if (e) 
 | 
        { 
 | 
            if (e.selectSingleNode(L"ÈÎÖ°"))    p.id = e.selectSingleNode(L"ÈÎÖ°").text(); 
 | 
            if (e.selectSingleNode(L"Óû§"))    p.no = e.selectSingleNode(L"Óû§").text(); 
 | 
            if (e.selectSingleNode(L"Ãû×Ö"))    p.name = e.selectSingleNode(L"Ãû×Ö").text(); 
 | 
            if (e.selectSingleNode(L"Ö°Ô±"))    p.personid = e.selectSingleNode(L"Ö°Ô±").text(); 
 | 
            if (e.selectSingleNode(L"±àºÅ"))    p.userid = e.selectSingleNode(L"±àºÅ").text(); 
 | 
  
 | 
            if (e.selectSingleNode(L"¹¤ÖÖ"))    p.jobid = e.selectSingleNode(L"¹¤ÖÖ").text(); 
 | 
            if (e.selectSingleNode(L"¸Úλ"))    p.positionid = e.selectSingleNode(L"¸Úλ").text(); 
 | 
            if (e.selectSingleNode(L"ÊÂÒµ²¿"))    p.orgid = e.selectSingleNode(L"ÊÂÒµ²¿").text(); 
 | 
            if (e.selectSingleNode(L"²¿ÃÅ"))    p.deptid = e.selectSingleNode(L"²¿ÃÅ").text(); 
 | 
            if (e.selectSingleNode(L"ÍŶÓ"))    p.teamid = e.selectSingleNode(L"ÍŶÓ").text(); 
 | 
            if (e.selectSingleNode(L"С×é"))    p.groupid = e.selectSingleNode(L"С×é").text(); 
 | 
            if (e.selectSingleNode(L"µ¥Ôª"))    p.unitid = e.selectSingleNode(L"µ¥Ôª").text(); 
 | 
            if (e.selectSingleNode(L"·¨ÈË"))    p.companyid = e.selectSingleNode(L"·¨ÈË").text(); 
 | 
  
 | 
            if (e.selectSingleNode(L"¹¤ÖÖÃû³Æ"))    p.jobname = e.selectSingleNode(L"¹¤ÖÖÃû³Æ").text(); 
 | 
            if (e.selectSingleNode(L"¸ÚλÃû³Æ"))    p.positionname = e.selectSingleNode(L"¸ÚλÃû³Æ").text(); 
 | 
            if (e.selectSingleNode(L"ÊÂÒµ²¿Ãû³Æ"))    p.orgname = e.selectSingleNode(L"ÊÂÒµ²¿Ãû³Æ").text(); 
 | 
            if (e.selectSingleNode(L"²¿ÃÅÃû³Æ"))    p.deptname = e.selectSingleNode(L"²¿ÃÅÃû³Æ").text(); 
 | 
            if (e.selectSingleNode(L"ÍŶÓÃû³Æ"))    p.teamname = e.selectSingleNode(L"ÍŶÓÃû³Æ").text(); 
 | 
            if (e.selectSingleNode(L"С×éÃû³Æ"))    p.groupname = e.selectSingleNode(L"С×éÃû³Æ").text(); 
 | 
            if (e.selectSingleNode(L"µ¥ÔªÃû³Æ"))    p.unitname = e.selectSingleNode(L"µ¥ÔªÃû³Æ").text(); 
 | 
            if (e.selectSingleNode(L"·¨ÈËÃû³Æ"))    p.companyname = e.selectSingleNode(L"·¨ÈËÃû³Æ").text(); 
 | 
  
 | 
            if (e.selectSingleNode(L"µç»°"))    p.tel = e.selectSingleNode(L"µç»°").text(); 
 | 
        } 
 | 
        return p; 
 | 
    } 
 | 
    static PUser& GetUser() 
 | 
    { 
 | 
        return GetUser(L""); 
 | 
    } 
 | 
  
 | 
    //È¡¹«Ë¾·ÑÂÊ£¨¶¨¶î·ÑÂÊ£©-ÔÝʱûÓõ½ 
 | 
    static string GetFixedChargeRate(string sOrgID) 
 | 
    { 
 | 
        /* 
 | 
        if (sOrgID == "") return "4.2"; 
 | 
        xml  
 | 
        x.setNativePointer(xml::CreateInstance()); 
 | 
        xaserverarg args=new xaserverarg; 
 | 
        args.setNativePointer(args.CreateInstance()); 
 | 
        args.AddArg(L"orgid",sOrgID); 
 | 
  
 | 
        string ls_date; 
 | 
        if(xaserver::ExecXQuery(L"","[GetFixedChargeRate.xq]",args.GetString(),x)==1) 
 | 
        { 
 | 
            msxml::IXMLDOMElement e= x.GetXmlDoc().documentElement; 
 | 
            if(e) 
 | 
                if(e.selectSingleNode(L"FixedChargeRate")) 
 | 
                    ls_date =  e.selectSingleNode(L"FixedChargeRate").text(); 
 | 
        } 
 | 
  
 | 
        return ls_date+"";*/ 
 | 
        return L""; 
 | 
    } 
 | 
  
 | 
    //È¡»ãÂÊ 
 | 
    static xstring GetExchangeRate(xstring pcur, xstring pdate) 
 | 
    { 
 | 
        if (pcur.toUpper() == L"RMB") return L"1"; 
 | 
        KXMLDOMDocument x; 
 | 
        xaserverarg args; 
 | 
        args.AddArg(L"currency", pcur, L""); 
 | 
        if (pdate != L"") args.AddArg(L"date", pcur, L""); 
 | 
        xstring ls_date; 
 | 
        if (xaserver::ExecXQuery(L"", L"[GetCurrencyExchangeRate.xq]", args.GetString(), x) == 1) 
 | 
        { 
 | 
            KXMLDOMElement e = x.documentElement(); 
 | 
            if (e) 
 | 
                if (e.selectSingleNode(L"ExchangeRate")) 
 | 
                    ls_date = e.selectSingleNode(L"ExchangeRate").text();  //e.getAttribute(L"date"); 
 | 
        } 
 | 
        return ls_date + L""; 
 | 
    } 
 | 
  
 | 
    static xstring GetExchangeRate(string pcur) 
 | 
    { 
 | 
        return GetExchangeRate(pcur, L""); 
 | 
    } 
 | 
  
 | 
    static string GetExchangeRate() 
 | 
    { 
 | 
        return GetExchangeRate(L"USD"); 
 | 
    } 
 | 
  
 | 
    //file Îļþ¸´ÖƹýÀ´ 
 | 
    static int get(xstring aurl, xstring atype, KXMLDOMDocument x) 
 | 
    { 
 | 
        return xaserver::LoadUrl(L"", L"dev:" + atype + L"[" + aurl + L"]", L"", x); 
 | 
    } 
 | 
  
 | 
    static int get(xstring aurl, KXMLDOMDocument x) 
 | 
    { 
 | 
        if (aurl.find(L":", 0) > 0) { 
 | 
            xstring str = aurl.mid(aurl.find(L":", 0) + 1, aurl.length()); 
 | 
            xstring t = str.mid(0, str.find(L"[", 0)); 
 | 
            xstring n = str.mid(str.find(L"[", 0) + 1, str.find(L"]", 0)); 
 | 
            return get(n, t, x); 
 | 
        } 
 | 
        else 
 | 
            return get(aurl, L"xml", x); 
 | 
    } 
 | 
  
 | 
    static xstring get(xstring aurl, xstring atype) 
 | 
    { 
 | 
        KXMLDOMDocument x; 
 | 
        int res = get(aurl, atype, x); 
 | 
        if (res == 1) 
 | 
            return x.xml(); 
 | 
        else 
 | 
            return L""; 
 | 
    } 
 | 
  
 | 
    static xstring get(xstring aurl) 
 | 
    { 
 | 
        if (aurl.find(L":", 0) > 0) { 
 | 
            xstring str = aurl.mid(aurl.find(L":", 0) + 1, aurl.length()); 
 | 
            xstring t = str.mid(0, str.find(L"[", 0)); 
 | 
            xstring n = str.mid(str.find(L"[", 0) + 1, str.find(L"]", 0)); 
 | 
            return get(n, t); 
 | 
        } 
 | 
        else 
 | 
            return get(aurl, (xstring)L"xml"); 
 | 
    } 
 | 
  
 | 
    static xstring node(xstring aurl, xstring atype, xstring id) 
 | 
    { 
 | 
        KXMLDOMDocument config; 
 | 
        int res = get(aurl, atype, config); 
 | 
        KXMLDOMElement e = config.selectSingleNode(L"*/" + id); 
 | 
        if (e) { 
 | 
            return e.xml(); 
 | 
        } 
 | 
        else { 
 | 
            return L""; 
 | 
        } 
 | 
    } 
 | 
  
 | 
    static xstring node(xstring aurl, xstring id) 
 | 
    { 
 | 
        return node(aurl, L"xml", id); 
 | 
    } 
 | 
  
 | 
    //ÐÂGuid 
 | 
    static xstring GetGuid() 
 | 
    { 
 | 
        KXMLDOMDocument x; 
 | 
        if (xaserver::ExecXQuery(L"", L"[GetGuid.xq]", L"", x) != 1) 
 | 
        { 
 | 
            //trace(x.GetXml()); 
 | 
            return L""; 
 | 
        } 
 | 
        KXMLDOMElement e = x.documentElement(); 
 | 
        return e.text(); 
 | 
    } 
 | 
  
 | 
    //È¡OrgID 
 | 
    static xstring getOrgID(xstring sguid) 
 | 
    { 
 | 
        KXMLDOMDocument x; 
 | 
        xaserverarg arg ; 
 | 
        arg.AddArg(L"AssignmentID", sguid); 
 | 
        if (xaserver::ExecXQuery(L"", L"[getAssignment.xq]", arg.GetString(), x) == 1) 
 | 
        { 
 | 
            KXMLDOMElement e = x.documentElement(); 
 | 
        } 
 | 
        return L""; 
 | 
    } 
 | 
  
 | 
    static KXMLDOMDocument getAssignment(string sguid, KXMLDOMDocument x) 
 | 
    { 
 | 
        //xml  
 | 
        //x.setNativePointer(xml::CreateInstance());         
 | 
        xaserverarg arg; 
 | 
         
 | 
        arg.AddArg(L"AssignmentID", sguid); 
 | 
        if (xaserver::ExecXQuery(L"", L"[getAssignment.xq]", arg.GetString(), x) == 1) 
 | 
        { 
 | 
            KXMLDOMElement e = x.documentElement(); 
 | 
        } 
 | 
        return x; 
 | 
    } 
 | 
    //ÈÕÆÚת»» 
 | 
    static xstring DateTransform(xaserverarg arg) 
 | 
    { 
 | 
        xstring ls_date; 
 | 
        KXMLDOMDocument x; 
 | 
        if (xaserver::ExecXQuery(L"", L"[DateTransform.xq]", arg.GetString(), x) == 1) 
 | 
        { 
 | 
            KXMLDOMElement e = x.documentElement(); 
 | 
            if (e) 
 | 
                ls_date = e.text();  //e.getAttribute(L"date"); 
 | 
        } 
 | 
        return ls_date + L""; 
 | 
    } 
 | 
    //ÍùÀ´µ¥Î»Éú³É±àºÅ 
 | 
    static xstring GetIdentityNo(string stype) 
 | 
    { 
 | 
        KXMLDOMDocument x; 
 | 
        xaserverarg arg; 
 | 
        arg.AddArg(L"sType", stype, L""); 
 | 
        if (xaserver::ExecXQuery(L"", L"[GetIdentityNo.xq]", arg.GetString(), x) != 1) 
 | 
        { 
 | 
            //trace(x.GetXml()); 
 | 
            return L""; 
 | 
        } 
 | 
        KXMLDOMElement e = x.documentElement(); 
 | 
        return e.text(); 
 | 
    } 
 | 
  
 | 
    //ÍùÀ´µ¥Î»ÅжÏÖØ¸´ 
 | 
    static bool IsRepeated(xaserverarg arg) 
 | 
    { 
 | 
        KXMLDOMDocument x; 
 | 
        if (xaserver::ExecXQuery(L"", L"[IsRepeated.xq]", arg.GetString(), x) != 1) 
 | 
        { 
 | 
            //trace(x.GetXml()); 
 | 
            return false; 
 | 
        } 
 | 
        KXMLDOMElement e = x.documentElement(); 
 | 
        xstring scnt = e.text(); 
 | 
        if (scnt == L"0") 
 | 
            return false; 
 | 
  
 | 
        return true; 
 | 
    } 
 | 
    //È¡ÖÐÎļÆÁ¿µ¥Î» by cky 
 | 
    static xstring   GetUnitCName(xstring unitcode) 
 | 
    { 
 | 
        KXMLDOMDocument x; 
 | 
        xaserverarg arg; 
 | 
        arg.AddArg(L"code", unitcode, L""); 
 | 
        if (xaserver::ExecXQuery(L"",L"[getUnitCName.xq]", arg.GetString(), x) != 1) 
 | 
        { 
 | 
            //trace(x.GetXml()); 
 | 
            return L""; 
 | 
        } 
 | 
        KXMLDOMElement e = x.documentElement(); 
 | 
        //trace(e.xml); 
 | 
        if (e) 
 | 
        { 
 | 
            xstring CName = e.text(); 
 | 
            //trace(srate); 
 | 
            return CName; 
 | 
        } 
 | 
        return L"1"; 
 | 
    } 
 | 
  
 | 
    //È¡¼ÆÁ¿µ¥Î»×ª»»ÂÊ 
 | 
    static string   GetConversionRate(string ls_from_unit, string ls_to_unit) 
 | 
    { 
 | 
        /* 
 | 
        ls_from_unit  Ôµ¥Î» 
 | 
        ls_to_unit   Ä¿±êµ¥Î» 
 | 
        */ 
 | 
        KXMLDOMDocument x; 
 | 
        xaserverarg arg; 
 | 
        arg.AddArg(L"code1", ls_from_unit, L""); 
 | 
        arg.AddArg(L"code2", ls_to_unit, L""); 
 | 
        if (xaserver::ExecXQuery(L"", L"[getUomInfo.xq]", arg.GetString(), x) != 1) 
 | 
        { 
 | 
            //trace(x.GetXml()); 
 | 
            return L""; 
 | 
        } 
 | 
        KXMLDOMElement e = x.documentElement(); 
 | 
        //trace(e.xml); 
 | 
        if (e) 
 | 
        { 
 | 
            string srate = e.text(); 
 | 
            //trace(srate); 
 | 
            return srate; 
 | 
        } 
 | 
        return L"1"; 
 | 
    } 
 | 
    //¸ù¾Ý×°Ô˵ÄÀàÐÍÈ¡ÈÝ»ý 
 | 
    static double GetFreightMode(string ls_type) 
 | 
    { 
 | 
        KXMLDOMDocument x; 
 | 
        xaserverarg arg; 
 | 
        arg.AddArg(L"ModelNo", ls_type, L""); 
 | 
        if (xaserver::ExecXQuery(L"", L"[GetFreightMode.xq]", arg.GetString(), x) != 1) 
 | 
        { 
 | 
            return 0; 
 | 
        } 
 | 
        KXMLDOMElement e = x.documentElement(); 
 | 
        if (e.selectSingleNode(L"Capacity")) 
 | 
            return xstring(e.selectSingleNode(L"Capacity").text()).toDouble(); 
 | 
        else 
 | 
            return 1; 
 | 
    } 
 | 
  
 | 
    static xstring GetRANo(xstring stype, xstring suseid) 
 | 
    { 
 | 
        KXMLDOMDocument x; 
 | 
        xaserverarg arg; 
 | 
        arg.AddArg(L"runo", stype, L""); 
 | 
        arg.AddArg(L"useid", suseid, L""); 
 | 
        if (xaserver::ExecXQuery(L"", L"[GetRANo.xq]", arg.GetString(), x) != 1) 
 | 
        { 
 | 
            //trace(x.GetXml()); 
 | 
            return L""; 
 | 
        } 
 | 
        KXMLDOMElement e = x.documentElement(); 
 | 
        if (e.selectSingleNode(L"raa/@RANo")) 
 | 
            return e.selectSingleNode(L"raa/@RANo").text(); 
 | 
        else 
 | 
            return L""; 
 | 
    } 
 | 
} 
 |