$PBExportHeader$uo_aifmb.sru forward global type uo_aifmb from nonvisualobject end type end forward shared variables string token long EntID string EntName long UserID string LoginName string UserName string Powers boolean LoginSuccess long auditflag string tele string phone string email string QQ // 本地企业信息 long local_userid = 0 string local_username = '' string local_cusid = '' // 如果绑定的用户名密码登录的企业信息与本地信息不符则按未登录处理 // 提供功能允许绑定到其它企业 end variables global type uo_aifmb from nonvisualobject end type global uo_aifmb uo_aifmb forward prototypes public function integer uf_syncindexandvalue (ref string arg_msg) public function integer uf_bookindexes (s_aifmb_indexbookinfo arg_indexes[], ref string arg_msg) public function integer uf_getmypromotions (ref datastore arg_ds, ref string arg_msg) public function integer uf_getindexvaluelist (long arg_indexid, ref string arg_msg) public function integer uf_getindexvalue_del (long arg_indexid, ref string arg_msg) public function integer uf_getindexdefinelist (ref string arg_msg) public function integer uf_getallindexdefine_del (ref string arg_msg) public function integer uf_getproductcodelist (boolean arg_isstandard, datetime arg_starttime, datetime arg_endtime, string arg_keyword, long arg_nodeid_arr[], ref datastore arg_ds, ref string arg_msg) private function integer pf_gettoken (ref string arg_msg) public function integer uf_authcode (ref blob arg_pic, ref string arg_msg) public function integer uf_userlogin (string arg_username, string arg_psw, string arg_authcode, ref string arg_msg) public function integer uf_getlocaluserid (ref long arg_localuserid, ref string arg_msg) public function integer uf_getbuyinfolist (datetime arg_starttime, datetime arg_endtime, string arg_keyword, long arg_nodeid_arr[], long arg_entid_arr[], ref datastore arg_ds, ref string arg_msg) public function integer uf_removeproductentrelation (long arg_relactionid, ref string arg_msg) public function integer uf_addmodproductentrelation (ref s_aifmb_addmodproductentrelation arg_s_tran, ref string arg_msg) public function integer uf_setpromotions (ref s_aifmb_promotions arg_promotions_arr[], ref string arg_msg) public function integer uf_delbuyinfo (longlong arg_promoids[], ref string arg_msg) public function integer uf_delpromotions (longlong arg_promoids[], ref string arg_msg) public function integer uf_userlogout (ref string arg_msg) public function boolean sf_islogin () public function string sf_loginname () public function string sf_username () public function long sf_userid () public function long sf_entid () public function string sf_entname () private function integer pf_getlocalcominfo (ref string arg_msg) public function integer uf_getlocalusername (ref string arg_localusername, ref string arg_msg) public function integer uf_regcom (s_aifmb_regcomrequest arg_s_request, ref string arg_msg) public function integer uf_commatch (string arg_usercode, string arg_username, string arg_psw, ref string arg_msg) public function integer uf_searchproductannexlist (long arg_relationid, long arg_pageindex, long arg_pagesize, ref s_aifmb_searchproductannex arg_annexlist[], ref string arg_msg) public function integer uf_addproductannex (longlong arg_relationid, s_aifmb_productannexdata arg_s_pics[], ref string arg_msg) public function integer uf_delproductannex (longlong arg_annexid[], ref string arg_msg) public function integer uf_requestquote (s_aifmb_requestquotedata arg_s_data[], ref string arg_msg) public function integer uf_getrequestquoteanswer (ref s_aifmb_getrequestquoteanswerdata s_data[], ref string arg_msg) public function integer uf_sync_node (ref string arg_msg) public function datetime pf_getsynctime () public subroutine pf_setsynctime (datetime arg_lasttime) public function integer uf_sync_node_bytime (ref string arg_msg) public function integer uf_getentuserlist (ref datastore arg_ds, ref string arg_msg) public function integer uf_getuserrightlist (ref datastore arg_ds, ref string arg_msg) public function integer uf_setbuyinfo (ref s_aifmb_buyinfo arg_promotions_arr[], ref string arg_msg) public function integer uf_setentuserright (ref s_aifmb_a_user arg_users[], ref string arg_msg) public function integer uf_addcuscomm (string opcusid, long custype, ref string arg_msg) public function integer uf_getusergrade (ref datastore arg_ds, ref string arg_msg) public function integer uf_searchproductentrelationlist (boolean arg_isstandard, datetime arg_starttime, datetime arg_endtime, string arg_keyword, long arg_nodeid_arr[], long arg_entid_arr[], long arg_pageindex, long arg_pagesize, ref datastore arg_ds, ref string arg_msg) public function integer uf_searchpromotionslist (datetime arg_starttime, datetime arg_endtime, string arg_keyword, long arg_nodeid_arr[], long arg_entid_arr[], long arg_pageindex, long arg_pagesize, ref datastore arg_ds, ref string arg_msg) public function integer uf_searchbuyinfolist (datetime arg_starttime, datetime arg_endtime, string arg_keyword, long arg_nodeid_arr[], long arg_entid_arr[], long arg_pageindex, long arg_pagesize, ref datastore arg_ds, ref string arg_msg) public function integer uf_getlastbuyinforeply (long arg_productid, ref datastore ds_aifmb_buyinforeply, ref string arg_msg) public function integer uf_getlastindexproductvalue (long arg_productid, ref datastore ds_aifmb_indexproductvalue, ref string arg_msg) public function integer uf_getlastpromotions (long arg_productid, ref datastore ds_aifmb_promotions, ref string arg_msg) public function integer uf_getindexproductvaluelist (long arg_productid, datetime arg_starttime, datetime arg_endtime, ref datastore arg_ds, ref string arg_msg) public function integer uf_getpromotionslist (long arg_productid, datetime arg_starttime, datetime arg_endtime, string arg_keyword, long arg_nodeid_arr[], long arg_entid_arr[], ref datastore arg_ds, ref string arg_msg) public function integer uf_getbuyinforeplylist (long arg_productid, datetime arg_starttime, datetime arg_endtime, long arg_buyids[], ref datastore arg_ds, ref string arg_msg) public function string pf_getpromocode () public function string pf_getbuycode () public function integer pf_resetcominfo (ref string arg_msg) public function integer uf_tryautologin (ref string arg_msg) public subroutine pf_reset () public function integer uf_modentpsw (string arg_oldpsw, string arg_newpsw, ref string arg_msg) public function long sf_auditflag () public function string sf_tele () public function string sf_phone () public function string sf_email () public function string sf_qq () public function integer uf_inquire_gettome (datastore arg_ds, ref string arg_msg) public function integer uf_inquire_getfromme (datastore arg_ds, ref string arg_msg) public function integer uf_inquire_add (ref s_aifmb_inquire_add s_tran, ref string arg_msg) public function integer uf_inquire_rsp (ref s_aifmb_inquire_add s_tran, ref string arg_msg) public function integer uf_inquire_cfm (ref s_aifmb_inquire_add s_tran, ref string arg_msg) public function integer uf_setentlinkstatus (integer arg_receivemsg, ref string arg_msg) public function integer uf_getlinkedentlist (datastore arg_ds, long arg_pageindex, long arg_pagesize, ref string arg_msg) public function integer uf_setentlinkmsg (long arg_receiveentids[], string arg_msgcontent, string arg_linkstring, ref string arg_msg) public function integer uf_getentlinkmsglist (ref datastore arg_ds, boolean arg_receive, boolean arg_send, boolean arg_isdeal, long arg_pageindex, long arg_pagesize, ref string arg_msg) end prototypes public function integer uf_syncindexandvalue (ref string arg_msg);Int rslt = 1 IF uf_GetIndexDefineList(Ref arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF Long arr_indexid[], ll_indexid String arr_indexcode[], ls_indexcode Long i = 0 DECLARE cur1 Cursor FOR SELECT indexid, IndexCode From aifmb_Index Where ifdel = 0 And ifbook = 1; OPEN cur1; FETCH cur1 Into :ll_indexid, :ls_indexcode; DO WHILE sqlca.SQLCode = 0 i++ arr_indexid[i] = ll_indexid arr_indexcode[i] = ls_indexcode FETCH cur1 Into :ll_indexid, :ls_indexcode; LOOP CLOSE cur1; String ls_msg = '' arg_msg = '' FOR i = 1 To UpperBound(arr_indexid) IF uf_getindexvaluelist(arr_indexid[i], ls_msg) <> 1 THEN rslt = 0 arg_msg += arr_indexcode[i] + '获取指数值失败:' + ls_msg + '~r~n' END IF NEXT ext: RETURN rslt end function public function integer uf_bookindexes (s_aifmb_indexbookinfo arg_indexes[], ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF IF sys_email_sqlca.DBHandle() <= 0 THEN rslt = 0 arg_msg = '未设置邮件数据库' GOTO ext END IF Long ll_cnt SELECT COUNT(0) INTO :ll_cnt FROM LJFIEB_ComInfo Using sys_email_sqlca; IF sys_email_sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询注册信息表失败,' + sys_email_sqlca.SQLErrText GOTO ext END IF IF ll_cnt = 0 THEN rslt = 0 arg_msg = '请更新供应链后台以初始化数据库' GOTO ext END IF IF ll_cnt > 1 THEN rslt = 0 arg_msg = '注册信息存在多条,异常' GOTO ext END IF String ls_CusID Long ins_userid String ins_psw SELECT CusID, userid, psw INTO :ls_CusID, :ins_userid, :ins_psw FROM LJFIEB_ComInfo Using sys_email_sqlca; IF sys_email_sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询企业注册信息失败,' + sys_email_sqlca.SQLErrText GOTO ext END IF IF ins_userid <= 0 THEN rslt = 0 arg_msg = '企业未注册' GOTO ext END IF oleobject request request = lo_proxy.NewBookIndexesRequest() request.EntID = ins_userid request.Indexes = lo_proxy.NewArrOfIIndexBookInfo() Long i oleobject lo_bookinfo FOR i = 1 To UpperBound(arg_indexes) lo_bookinfo = lo_proxy.NewIndexBookInfo() lo_bookinfo.IndexID = arg_indexes[i].IndexID lo_bookinfo.StartTime = arg_indexes[i].StartTime lo_bookinfo.EndTime = arg_indexes[i].EndTime lo_bookinfo.BookType = arg_indexes[i].BookType request.Indexes.Add(lo_bookinfo) NEXT oleobject response response = lo_proxy.BookIndexes(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF DateTime ld_server SELECT top 1 GETDATE() INTO :ld_server From u_user; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询系统时间失败,' + sqlca.SQLErrText GOTO ext END IF // TODO: 更新订阅列表 ext: Destroy ll_proxyfactory IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function public function integer uf_getmypromotions (ref datastore arg_ds, ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF IF sys_email_sqlca.DBHandle() <= 0 THEN rslt = 0 arg_msg = '未设置邮件数据库' GOTO ext END IF Long ll_cnt SELECT COUNT(0) INTO :ll_cnt FROM LJFIEB_ComInfo Using sys_email_sqlca; IF sys_email_sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询注册信息表失败,' + sys_email_sqlca.SQLErrText GOTO ext END IF IF ll_cnt = 0 THEN rslt = 0 arg_msg = '请更新供应链后台以初始化数据库' GOTO ext END IF IF ll_cnt > 1 THEN rslt = 0 arg_msg = '注册信息存在多条,异常' GOTO ext END IF String ls_CusID Long ins_userid String ins_psw SELECT CusID, userid, psw INTO :ls_CusID, :ins_userid, :ins_psw FROM LJFIEB_ComInfo Using sys_email_sqlca; IF sys_email_sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询企业注册信息失败,' + sys_email_sqlca.SQLErrText GOTO ext END IF IF ins_userid <= 0 THEN rslt = 0 arg_msg = '企业未注册' GOTO ext END IF oleobject request request = lo_proxy.NewGetMyPromotionsRequest() request.EntID = ins_userid oleobject response response = lo_proxy.GetMyPromotions(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF IF Not IsValid(arg_ds) THEN arg_ds = Create datastore END IF IF arg_ds.DataObject <> 'ds_aifmb_promotions' THEN arg_ds.DataObject = 'ds_aifmb_promotions' END IF Long cnt, row cnt = response.Promotions.Count() oleobject lo_promo Long i FOR i = 0 To cnt - 1 lo_promo = response.Promotions.GetItem(i) row = arg_ds.InsertRow(0) arg_ds.Object.PromoID[row] = lo_promo.PromoID arg_ds.Object.EntID[row] = lo_promo.EntID arg_ds.Object.CreaterID[row] = lo_promo.CreaterID arg_ds.Object.CreatTime[row] = lo_promo.CreatTime arg_ds.Object.IsAudit[row] = lo_promo.IsAudit arg_ds.Object.AuditerID[row] = lo_promo.AuditerID arg_ds.Object.AuditTime[row] = lo_promo.AuditTime arg_ds.Object.StartTime[row] = lo_promo.StartTime arg_ds.Object.EndTime[row] = lo_promo.EndTime arg_ds.Object.PromoName[row] = lo_promo.PromoName arg_ds.Object.PromoTitle[row] = lo_promo.PromoTitle arg_ds.Object.PromoURL[row] = lo_promo.PromoURL arg_ds.Object.PromoRange[row] = lo_promo.PromoRange arg_ds.Object.PromoRemark[row] = lo_promo.PromoRemark arg_ds.Object.PromoCode[row] = lo_promo.PromoCode arg_ds.Object.NodeID[row] = lo_promo.NodeID arg_ds.Object.ProductID[row] = lo_promo.ProductID arg_ds.Object.ProCode[row] = lo_promo.ProCode arg_ds.Object.ProName[row] = lo_promo.ProName arg_ds.Object.ProMode[row] = lo_promo.ProMode arg_ds.Object.ProUnit[row] = lo_promo.ProUnit arg_ds.Object.IsPublic[row] = lo_promo.IsPublic arg_ds.Object.PromoType[row] = lo_promo.PromoType arg_ds.Object.MPrice[row] = lo_promo.MPrice arg_ds.Object.NPrice[row] = lo_promo.NPrice NEXT ext: Destroy ll_proxyfactory RETURN rslt end function public function integer uf_getindexvaluelist (long arg_indexid, ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF Long ll_cnt SELECT COUNT(0) INTO :ll_cnt FROM aifmb_IndexTrend Where IndexID = :arg_indexid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询指数值个数失败,' + sqlca.SQLErrText GOTO ext END IF DateTime ld_maxdt SetNull(ld_maxdt) IF ll_cnt > 0 THEN SELECT max(CDate) INTO :ld_maxdt FROM aifmb_IndexTrend Where IndexID = :arg_indexid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询指数值最大统计日期失败,' + sqlca.SQLErrText GOTO ext END IF END IF oleobject request request = lo_proxy.NewGetIndexValueListRequest() //request.Token = Token request.IndexID = String(arg_indexid) request.StartTime = ld_maxdt oleobject response response = lo_proxy.GetIndexValue(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF Long cnt cnt = response.IndexValueList.Count Long i oleobject lo_value DateTime l_CDate Decimal l_indexValue FOR i = 0 To cnt - 1 lo_value = response.IndexValueList.GetItem(i) l_CDate = lo_value.CreatTime l_indexValue = lo_value.TheIndexValue INSERT INTO aifmb_IndexTrend (IndexID ,CDate ,IndexValue ,downloadtime) VALUES (:arg_indexid ,:l_CDate ,:l_IndexValue ,GETDATE()); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '插入指数值缓存表失败,' + sqlca.SQLErrText GOTO ext END IF NEXT ext: Destroy ll_proxyfactory IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function public function integer uf_getindexvalue_del (long arg_indexid, ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF IF sys_email_sqlca.DBHandle() <= 0 THEN rslt = 0 arg_msg = '未设置邮件数据库' GOTO ext END IF Long ll_cnt SELECT COUNT(0) INTO :ll_cnt FROM LJFIEB_ComInfo Using sys_email_sqlca; IF sys_email_sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询注册信息表失败,' + sys_email_sqlca.SQLErrText GOTO ext END IF IF ll_cnt = 0 THEN rslt = 0 arg_msg = '请更新供应链后台以初始化数据库' GOTO ext END IF IF ll_cnt > 1 THEN rslt = 0 arg_msg = '注册信息存在多条,异常' GOTO ext END IF String ls_CusID Long ins_userid String ins_psw SELECT CusID, userid, psw INTO :ls_CusID, :ins_userid, :ins_psw FROM LJFIEB_ComInfo Using sys_email_sqlca; IF sys_email_sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询企业注册信息失败,' + sys_email_sqlca.SQLErrText GOTO ext END IF IF ins_userid <= 0 THEN rslt = 0 arg_msg = '企业未注册' GOTO ext END IF SELECT COUNT(0) INTO :ll_cnt FROM aifmb_IndexTrend Where IndexID = :arg_indexid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询指数值个数失败,' + sqlca.SQLErrText GOTO ext END IF DateTime ld_maxdt SetNull(ld_maxdt) IF ll_cnt > 0 THEN SELECT max(CDate) INTO :ld_maxdt FROM aifmb_IndexTrend Where IndexID = :arg_indexid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询指数值最大统计日期失败,' + sqlca.SQLErrText GOTO ext END IF END IF oleobject request request = lo_proxy.NewGetIndexValueRequest() request.EntID = ins_userid request.IndexID = arg_indexid request.MaxCDate = ld_maxdt oleobject response response = lo_proxy.GetIndexValue(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF Long cnt cnt = response.Values.COUNT Long i oleobject lo_value DateTime l_CDate Decimal l_indexValue FOR i = 0 To cnt - 1 lo_value = response.Values.GetItem(i) l_CDate = lo_value.CDate l_indexValue = lo_value.indexValue INSERT INTO aifmb_IndexTrend (IndexID ,CDate ,IndexValue ,downloadtime) VALUES (:arg_indexid ,:l_CDate ,:l_IndexValue ,GETDATE()); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '插入指数值缓存表失败,' + sqlca.SQLErrText GOTO ext END IF NEXT ext: Destroy ll_proxyfactory IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function public function integer uf_getindexdefinelist (ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewGetIndexDefineListRequest() IF Not IsNull(token) THEN IF token <> '' THEN request.token = token END IF END IF oleobject response response = lo_proxy.GetIndexDefineList(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF DateTime ld_server SELECT top 1 GETDATE() INTO :ld_server From u_user; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询系统时间失败,' + sqlca.SQLErrText GOTO ext END IF Long cnt cnt = response.IndexDefineList.Count Long i oleobject lo_indexdefine Long l_IndexID String l_IndexCode String l_IndexName DateTime l_sys_changetime Long l_grade String l_ctype String l_cparam Long l_type FOR i = 0 To cnt - 1 lo_indexdefine = response.IndexDefineList.GetItem(i) l_IndexID = lo_indexdefine.IndexID l_IndexCode = lo_indexdefine.IndexCode l_IndexName = lo_indexdefine.IndexName l_sys_changetime = lo_indexdefine.CreatTime l_grade = lo_indexdefine.IndexGrade l_ctype = lo_indexdefine.IntervalType l_cparam = lo_indexdefine.IntervalTime l_type = lo_indexdefine.IndexType UPDATE aifmb_Index SET IndexCode = :l_IndexCode ,IndexName = :l_IndexName ,sys_changetime = :l_sys_changetime ,grade = :l_grade ,ctype = :l_ctype ,cparam = :l_cparam ,type = :l_type ,downloadtime = GETDATE() ,ifdel = 0 Where IndexID = :l_IndexID; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '更新指数缓存表失败,' + sqlca.SQLErrText GOTO ext END IF IF sqlca.SQLNRows = 0 THEN INSERT INTO aifmb_Index (IndexID ,IndexCode ,IndexName ,sys_changetime ,grade ,ctype ,cparam ,type ,downloadtime) VALUES (:l_IndexID ,:l_IndexCode ,:l_IndexName ,:l_sys_changetime ,:l_grade ,:l_ctype ,:l_cparam ,:l_type ,GETDATE()); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '添加指数缓存表失败,' + sqlca.SQLErrText GOTO ext END IF END IF NEXT UPDATE aifmb_Index SET ifdel = 1 Where downloadtime < :ld_server; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '更新指数缓存表失败,' + sqlca.SQLErrText GOTO ext END IF ext: Destroy ll_proxyfactory IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function public function integer uf_getallindexdefine_del (ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF IF sys_email_sqlca.DBHandle() <= 0 THEN rslt = 0 arg_msg = '未设置邮件数据库' GOTO ext END IF Long ll_cnt SELECT COUNT(0) INTO :ll_cnt FROM LJFIEB_ComInfo Using sys_email_sqlca; IF sys_email_sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询注册信息表失败,' + sys_email_sqlca.SQLErrText GOTO ext END IF IF ll_cnt = 0 THEN rslt = 0 arg_msg = '请更新供应链后台以初始化数据库' GOTO ext END IF IF ll_cnt > 1 THEN rslt = 0 arg_msg = '注册信息存在多条,异常' GOTO ext END IF String ls_CusID Long ins_userid String ins_psw SELECT CusID, userid, psw INTO :ls_CusID, :ins_userid, :ins_psw FROM LJFIEB_ComInfo Using sys_email_sqlca; IF sys_email_sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询企业注册信息失败,' + sys_email_sqlca.SQLErrText GOTO ext END IF IF ins_userid <= 0 THEN rslt = 0 arg_msg = '企业未注册' GOTO ext END IF oleobject request request = lo_proxy.NewGetAllIndexDefineRequest() request.EntID = ins_userid oleobject response response = lo_proxy.GetAllIndexDefine(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF DateTime ld_server SELECT top 1 GETDATE() INTO :ld_server From u_user; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询系统时间失败,' + sqlca.SQLErrText GOTO ext END IF Long cnt cnt = response.Indexes.COUNT Long i oleobject lo_indexdefine Long l_IndexID String l_IndexCode String l_IndexName String l_dscrp DateTime l_sys_changetime Long l_grade String l_ctype String l_cparam Long l_type Long l_ProductID Long l_ifbook DateTime l_bookbegindate DateTime l_bookenddate FOR i = 0 To cnt - 1 lo_indexdefine = response.Indexes.GetItem(i) l_IndexID = lo_indexdefine.IndexID l_IndexCode = lo_indexdefine.IndexCode l_IndexName = lo_indexdefine.IndexName l_dscrp = lo_indexdefine.dscrp l_sys_changetime = lo_indexdefine.sys_changetime l_grade = lo_indexdefine.grade l_ctype = lo_indexdefine.ctype l_cparam = lo_indexdefine.cparam l_type = lo_indexdefine.Type l_ProductID = lo_indexdefine.ProductID l_ifbook = lo_indexdefine.ifbook l_bookbegindate = lo_indexdefine.bookbegindate l_bookenddate = lo_indexdefine.bookenddate UPDATE aifmb_Index SET IndexCode = :l_IndexCode ,IndexName = :l_IndexName ,dscrp = :l_dscrp ,sys_changetime = :l_sys_changetime ,grade = :l_grade ,ctype = :l_ctype ,cparam = :l_cparam ,type = :l_type ,ProductID = :l_ProductID ,ifbook = :l_ifbook ,bookbegindate = :l_bookbegindate ,bookenddate = :l_bookenddate ,downloadtime = GETDATE() ,ifdel = 0 Where IndexID = :l_IndexID; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '更新指数缓存表失败,' + sqlca.SQLErrText GOTO ext END IF IF sqlca.SQLNRows = 0 THEN INSERT INTO aifmb_Index (IndexID ,IndexCode ,IndexName ,dscrp ,sys_changetime ,grade ,ctype ,cparam ,type ,ProductID ,ifbook ,bookbegindate ,bookenddate ,downloadtime) VALUES (:l_IndexID ,:l_IndexCode ,:l_IndexName ,:l_dscrp ,:l_sys_changetime ,:l_grade ,:l_ctype ,:l_cparam ,:l_type ,:l_ProductID ,:l_ifbook ,:l_bookbegindate ,:l_bookenddate ,GETDATE()); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '添加指数缓存表失败,' + sqlca.SQLErrText GOTO ext END IF END IF NEXT UPDATE aifmb_Index SET ifdel = 1 Where downloadtime < :ld_server; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '更新指数缓存表失败,' + sqlca.SQLErrText GOTO ext END IF ext: Destroy ll_proxyfactory IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function public function integer uf_getproductcodelist (boolean arg_isstandard, datetime arg_starttime, datetime arg_endtime, string arg_keyword, long arg_nodeid_arr[], ref datastore arg_ds, ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewGetProductCodeListRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF request.IsStandard = arg_isstandard request.KeyWord = arg_keyword IF Not IsNull(arg_starttime) THEN request.StartTime = arg_starttime END IF IF Not IsNull(arg_endtime) THEN request.EndTime = arg_endtime END IF String ls_nodeids = '' Long i IF Not IsNull(arg_nodeid_arr) THEN IF UpperBound(arg_nodeid_arr) > 0 THEN ls_nodeids = String(arg_nodeid_arr[1]) FOR i = 2 To UpperBound(arg_nodeid_arr) ls_nodeids += ',' + String(arg_nodeid_arr[i]) NEXT request.NodeID = ls_nodeids END IF END IF oleobject response response = lo_proxy.GetProductCodeList(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF IF Not IsValid(arg_ds) THEN arg_ds = Create datastore END IF IF arg_ds.DataObject <> 'ds_aifmb_productcode' THEN arg_ds.DataObject = 'ds_aifmb_productcode' END IF Long cnt, row //long l_ProductID // string l_CustCode // long l_NodeID // long l_mtrlid // string l_mtrlcode // string l_mtrlname // string l_mtrlmode // string l_unit // decimal l_net_weight // decimal l_gross_weight // decimal l_cubage // string l_mtrlengname // DateTime l_sys_changetime // string l_dscrp // long l_isuse // boolean l_isStandard // string l_QualityDscrp cnt = response.ProductCodeList.Count oleobject lo_productcode FOR i = 0 To cnt - 1 lo_productcode = response.ProductCodeList.GetItem(i) row = arg_ds.InsertRow(0) // l_ProductID = lo_productcode.ProductID // l_CustCode = lo_productcode.CustCode // l_NodeID = lo_productcode.NodeID // l_mtrlid = lo_productcode.mtrlid // l_mtrlcode = lo_productcode.mtrlcode // l_mtrlname = lo_productcode.mtrlname // l_mtrlmode = lo_productcode.mtrlmode // l_unit = lo_productcode.unit // l_net_weight = lo_productcode.net_weight // l_gross_weight = lo_productcode.gross_weight // l_cubage = lo_productcode.cubage // l_mtrlengname = lo_productcode.mtrlengname // l_sys_changetime = lo_productcode.sys_changetime // l_dscrp = lo_productcode.dscrp // l_isuse = lo_productcode.isuse // l_isStandard = lo_productcode.isStandard // l_QualityDscrp = lo_productcode.QualityDscrp arg_ds.Object.ProductID[row] = lo_productcode.ProductID arg_ds.Object.CustCode[row] = lo_productcode.CustCode arg_ds.Object.NodeID[row] = lo_productcode.NodeID arg_ds.Object.mtrlid[row] = lo_productcode.mtrlid arg_ds.Object.mtrlcode[row] = lo_productcode.mtrlcode arg_ds.Object.mtrlname[row] = lo_productcode.mtrlname arg_ds.Object.mtrlmode[row] = lo_productcode.mtrlmode arg_ds.Object.unit[row] = lo_productcode.unit arg_ds.Object.net_weight[row] = lo_productcode.net_weight arg_ds.Object.gross_weight[row] = lo_productcode.gross_weight arg_ds.Object.cubage[row] = lo_productcode.cubage arg_ds.Object.mtrlengname[row] = lo_productcode.mtrlengname arg_ds.Object.sys_changetime[row] = lo_productcode.sys_changetime arg_ds.Object.dscrp[row] = lo_productcode.dscrp arg_ds.Object.isuse[row] = lo_productcode.isuse IF lo_productcode.IsStandard = True THEN arg_ds.Object.IsStandard[row] = 1 ELSE arg_ds.Object.IsStandard[row] = 0 END IF arg_ds.Object.QualityDscrp[row] = lo_productcode.QualityDscrp NEXT ext: Destroy ll_proxyfactory IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function private function integer pf_gettoken (ref string arg_msg);// 获取Token Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewGetTokenRequest() oleobject response response = lo_proxy.GetToken(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF token = response.Token ext: Destroy ll_proxyfactory RETURN rslt end function public function integer uf_authcode (ref blob arg_pic, ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF IsNull(token) Or token = '' THEN IF pf_GetToken(arg_msg) <> 1 THEN GOTO ext END IF END IF IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewAuthCodeRequest() request.Token = token oleobject response response = lo_proxy.AuthCode(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF arg_pic = response.img ext: Destroy ll_proxyfactory RETURN rslt end function public function integer uf_userlogin (string arg_username, string arg_psw, string arg_authcode, ref string arg_msg);Int rslt = 1 String ls_tmp uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF IsNull(token) Or token = '' THEN IF pf_GetToken(arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF END IF IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewUserLoginRequest() request.token = token request.logname = arg_username request.psw = arg_psw request.authCode = arg_authcode oleobject response response = lo_proxy.UserLogin(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF IF response.LoginSuccess <> True THEN rslt = 0 arg_msg = '登陆失败' GOTO ext END IF UPDATE u_user SET aifmb_logname = :arg_username, aifmb_logpsw = :arg_psw WHERE scid = :sys_scid AND empid = :sys_empid Using sqlca; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '绑定操作用户失败,' + sqlca.SQLErrText GOTO ext END IF IF response.EntID <> local_userid THEN rslt = 0 arg_msg = '不能以其它企业账号登录' GOTO ext END IF Long ll_entid Long ll_ReceiveMsg ll_entid = response.EntID UPDATE u_EntLinkStatus SET isAsiaUser = 1 Where EntID = :ll_entid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '更新连接亚洲国际标记失败,' + sqlca.SQLErrText GOTO ext END IF IF sqlca.SQLNRows = 0 THEN INSERT INTO u_EntLinkStatus(EntID,isAsiaUser,SoftType,LinkType,ReceiveMsg) Values(:ll_entid,1,:sys_project + 1,1,0); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '接入连接亚洲国际标记失败,' + sqlca.SQLErrText GOTO ext END IF END IF SELECT ReceiveMsg INTO :ll_ReceiveMsg FROM u_EntLinkStatus Where EntID = :ll_entid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询企业是否接收消息失败,' + sqlca.SQLErrText GOTO ext END IF EntID = response.EntID EntName = response.EntName UserID = response.UserID LoginName = response.LoginName UserName = response.UserName Powers = response.Powers IF Not IsNull(response.tele) THEN tele = response.tele IF Not IsNull(response.phone) THEN phone = response.phone IF Not IsNull(response.email) THEN email = response.email IF Not IsNull(response.QQ) THEN QQ = response.QQ LoginSuccess = response.LoginSuccess IF IsNull(response.auditflag) THEN auditflag = 0 ELSE auditflag = response.auditflag END IF ext: Destroy ll_proxyfactory IF rslt = 1 THEN COMMIT; // DONE: 获取本企业是否接收提醒 uf_setentlinkstatus(ll_ReceiveMsg, ls_tmp) ELSE ROLLBACK; END IF RETURN rslt end function public function integer uf_getlocaluserid (ref long arg_localuserid, ref string arg_msg);Int rslt = 1 IF local_userid <= 0 THEN IF pf_getlocalcominfo(arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF END IF IF local_userid <= 0 THEN rslt = 0 arg_msg = '企业未注册' GOTO ext END IF arg_localuserid = local_userid ext: RETURN rslt end function public function integer uf_getbuyinfolist (datetime arg_starttime, datetime arg_endtime, string arg_keyword, long arg_nodeid_arr[], long arg_entid_arr[], ref datastore arg_ds, ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewGetBuyInfoListRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF request.KeyWord = arg_keyword IF Not IsNull(arg_starttime) THEN request.StartTime = arg_starttime END IF IF Not IsNull(arg_endtime) THEN request.EndTime = arg_endtime END IF String ls_nodeids = '' Long i IF Not IsNull(arg_nodeid_arr) THEN IF UpperBound(arg_nodeid_arr) > 0 THEN ls_nodeids = String(arg_nodeid_arr[1]) FOR i = 2 To UpperBound(arg_nodeid_arr) ls_nodeids += ',' + String(arg_nodeid_arr[i]) NEXT request.NodeID = ls_nodeids END IF END IF String ls_entids = '' IF Not IsNull(arg_entid_arr) THEN IF UpperBound(arg_entid_arr) > 0 THEN ls_entids = String(arg_entid_arr[1]) FOR i = 2 To UpperBound(arg_entid_arr) ls_entids += ',' + String(arg_entid_arr[i]) NEXT request.EntID = ls_entids END IF END IF oleobject response response = lo_proxy.GetBuyInfoList(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF IF Not IsValid(arg_ds) THEN arg_ds = Create datastore END IF IF arg_ds.DataObject <> 'ds_aifmb_buyinfo' THEN arg_ds.DataObject = 'ds_aifmb_buyinfo' END IF Long cnt, row cnt = response.BuyInfoList.Count oleobject lo_productcode FOR i = 0 To cnt - 1 lo_productcode = response.BuyInfoList.GetItem(i) row = arg_ds.InsertRow(0) arg_ds.Object.BuyID[row] = lo_productcode.BuyID arg_ds.Object.EntID[row] = lo_productcode.EntID arg_ds.Object.CreaterID[row] = lo_productcode.CreaterID arg_ds.Object.CreatTime[row] = lo_productcode.CreatTime arg_ds.Object.IsAudit[row] = lo_productcode.IsAudit arg_ds.Object.AuditerID[row] = lo_productcode.AuditerID arg_ds.Object.AuditTime[row] = lo_productcode.AuditTime arg_ds.Object.StartTime[row] = lo_productcode.StartTime arg_ds.Object.EndTime[row] = lo_productcode.EndTime arg_ds.Object.BuyCode[row] = lo_productcode.BuyCode arg_ds.Object.BuyName[row] = lo_productcode.BuyName arg_ds.Object.BuyTitle[row] = lo_productcode.BuyTitle arg_ds.Object.BuyURL[row] = lo_productcode.BuyURL arg_ds.Object.BuyRange[row] = lo_productcode.BuyRange arg_ds.Object.BuyRemark[row] = lo_productcode.BuyRemark arg_ds.Object.MonthlyUse[row] = lo_productcode.MonthlyUse arg_ds.Object.DesiredPrice[row] = lo_productcode.DesiredPrice arg_ds.Object.Quality[row] = lo_productcode.Quality arg_ds.Object.NodeID[row] = lo_productcode.NodeID arg_ds.Object.StandardCode[row] = lo_productcode.StandardCode arg_ds.Object.ProductID[row] = lo_productcode.ProductID arg_ds.Object.ProCode[row] = lo_productcode.ProCode arg_ds.Object.ProName[row] = lo_productcode.ProName arg_ds.Object.ProMode[row] = lo_productcode.ProMode arg_ds.Object.ProUnit[row] = lo_productcode.ProUnit IF lo_productcode.IsPublic = True THEN arg_ds.Object.IsPublic[row] = 1 ELSE arg_ds.Object.IsPublic[row] = 0 END IF NEXT ext: Destroy ll_proxyfactory RETURN rslt end function public function integer uf_removeproductentrelation (long arg_relactionid, ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewRemoveProductEntRelationRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF request.RelationID = arg_relactionid oleobject response response = lo_proxy.RemoveProductEntRelation(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF ext: Destroy ll_proxyfactory IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function public function integer uf_addmodproductentrelation (ref s_aifmb_addmodproductentrelation arg_s_tran, ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewAddModProductEntRelationRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF request.RelationID = arg_s_tran.RelationID request.NodeID = arg_s_tran.NodeID request.mtrlid = arg_s_tran.mtrlid request.mtrlcode = arg_s_tran.mtrlcode request.mtrlname = arg_s_tran.mtrlname request.mtrlmode = arg_s_tran.mtrlmode request.unit = arg_s_tran.unit request.net_weight = arg_s_tran.net_weight request.gross_weight = arg_s_tran.gross_weight request.cubage = arg_s_tran.cubage request.mtrlengname = arg_s_tran.mtrlengname request.dscrp = arg_s_tran.dscrp request.QualityDscrp = arg_s_tran.QualityDscrp request.CustomCode = arg_s_tran.CustomCode request.MPrice = arg_s_tran.MPrice request.NPrice = arg_s_tran.NPrice request.isPublic = arg_s_tran.isPublic request.ProductID = arg_s_tran.ProductID Long i oleobject obj oleobject list list = lo_proxy.NewArrOfIProductAnnexData() FOR i = 1 To UpperBound(arg_s_tran.pics) obj = lo_proxy.NewProductAnnexData() obj.AnnexName = arg_s_tran.pics[i].Label obj.Pic = arg_s_tran.pics[i].Data list.Add(obj) NEXT request.ProductAnnexList = list oleobject response response = lo_proxy.AddModProductEntRelation(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF arg_s_tran.RelationID = response.RelationID arg_s_tran.ProductID = response.ProductID ext: Destroy ll_proxyfactory RETURN rslt end function public function integer uf_setpromotions (ref s_aifmb_promotions arg_promotions_arr[], ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewSetPromotionsRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF oleobject lo_list oleobject lo_promotions lo_list = lo_proxy.NewArrOfIPromotions() oleobject lo_list_pics lo_list_pics = lo_proxy.NewArrOfIArrOfIProductAnnexData() oleobject lo_list_pic oleobject lo_pic Long i, j FOR i = 1 To UpperBound(arg_promotions_arr) lo_promotions = lo_proxy.NewPromotions() IF arg_promotions_arr[i].PromoID > 0 THEN lo_promotions.PromoID = arg_promotions_arr[i].PromoID END IF lo_promotions.EntID = arg_promotions_arr[i].EntID lo_promotions.CreaterID = arg_promotions_arr[i].CreaterID // lo_promotions.CreatTime = arg_promotions_arr[i].CreatTime lo_promotions.IsAudit = arg_promotions_arr[i].IsAudit lo_promotions.AuditerID = arg_promotions_arr[i].AuditerID // lo_promotions.AuditTime = arg_promotions_arr[i].AuditTime IF Not IsNull(arg_promotions_arr[i].StartTime) THEN lo_promotions.StartTime = arg_promotions_arr[i].StartTime END IF IF Not IsNull(arg_promotions_arr[i].EndTime) THEN lo_promotions.EndTime = arg_promotions_arr[i].EndTime END IF lo_promotions.PromoName = arg_promotions_arr[i].PromoName lo_promotions.PromoTitle = arg_promotions_arr[i].PromoTitle lo_promotions.PromoURL = arg_promotions_arr[i].PromoURL lo_promotions.PromoRange = arg_promotions_arr[i].PromoRange lo_promotions.PromoRemark = arg_promotions_arr[i].PromoRemark lo_promotions.PromoCode = arg_promotions_arr[i].PromoCode lo_promotions.NodeID = arg_promotions_arr[i].NodeID lo_promotions.ProductID = arg_promotions_arr[i].ProductID lo_promotions.ProCode = arg_promotions_arr[i].ProCode lo_promotions.ProName = arg_promotions_arr[i].ProName lo_promotions.ProMode = arg_promotions_arr[i].ProMode lo_promotions.ProUnit = arg_promotions_arr[i].ProUnit lo_promotions.IsPublic = arg_promotions_arr[i].IsPublic lo_promotions.PromoType = arg_promotions_arr[i].PromoType lo_promotions.MPrice = arg_promotions_arr[i].MPrice lo_promotions.NPrice = arg_promotions_arr[i].NPrice lo_promotions.CreaterName = arg_promotions_arr[i].CreaterName lo_promotions.CreaterPhone = arg_promotions_arr[i].CreaterPhone lo_promotions.CreaterEmail = arg_promotions_arr[i].CreaterEmail lo_promotions.CreaterQQ = arg_promotions_arr[i].CreaterQQ lo_list.Add(lo_promotions) lo_list_pic = lo_proxy.NewArrOfIProductAnnexData() FOR j = 1 To UpperBound(arg_promotions_arr[i].pics) lo_pic = lo_proxy.NewProductAnnexData() lo_pic.AnnexName = arg_promotions_arr[i].pics[j].Label lo_pic.Pic = arg_promotions_arr[i].pics[j].Data lo_list_pic.Add(lo_pic) NEXT lo_list_pics.Add(lo_list_pic) NEXT request.Promotions = lo_list request.ProductAnnexList = lo_list_pics oleobject response response = lo_proxy.SetPromotions(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF FOR i = 1 To UpperBound(arg_promotions_arr) arg_promotions_arr[i].PromoID = response.PromoIDs.GetItem(i - 1) NEXT ext: Destroy ll_proxyfactory RETURN rslt end function public function integer uf_delbuyinfo (longlong arg_promoids[], ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewDelBuyInfoRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF String ls_promoids Long i IF UpperBound(arg_promoids) > 0 THEN ls_promoids = String(arg_promoids[1]) FOR i = 2 To UpperBound(arg_promoids) ls_promoids += ',' + String(arg_promoids[i]) NEXT request.BuyIDList = ls_promoids ELSE rslt = 0 arg_msg = '请选择要删除的促销' GOTO ext END IF oleobject response response = lo_proxy.DelBuyInfo(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF ext: Destroy ll_proxyfactory RETURN rslt end function public function integer uf_delpromotions (longlong arg_promoids[], ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewDelPromotionsRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF String ls_promoids Long i IF UpperBound(arg_promoids) > 0 THEN ls_promoids = String(arg_promoids[1]) FOR i = 2 To UpperBound(arg_promoids) ls_promoids += ',' + String(arg_promoids[i]) NEXT request.PromoIDs = ls_promoids ELSE rslt = 0 arg_msg = '请选择要删除的促销' GOTO ext END IF oleobject response response = lo_proxy.DelPromotions(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF ext: Destroy ll_proxyfactory RETURN rslt end function public function integer uf_userlogout (ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF IsNull(token) Or token = '' THEN IF pf_GetToken(arg_msg) <> 1 THEN GOTO ext END IF END IF IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewUserLogoutRequest() request.token = token oleobject response response = lo_proxy.UserLogout(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF EntID = 0 EntName = '' UserID = 0 LoginName = '' UserName = '' Powers = '' LoginSuccess = false auditflag = 0 tele = '' phone = '' email = '' QQ = '' ext: Destroy ll_proxyfactory RETURN rslt end function public function boolean sf_islogin ();if UserID > 0 then return true else return false end if end function public function string sf_loginname ();return loginname end function public function string sf_username ();return username end function public function long sf_userid ();return userid end function public function long sf_entid ();return entid end function public function string sf_entname ();return entname end function private function integer pf_getlocalcominfo (ref string arg_msg);int rslt = 1 if pf_resetcominfo(arg_msg) <> 1 then rslt = 0 goto ext end if String ls_CusID Long ins_userid string username String ins_psw SELECT CusID, userid, psw, username INTO :ls_CusID, :ins_userid, :ins_psw, :username FROM LJFIEB_ComInfo Using sys_email_sqlca; IF sys_email_sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询企业注册信息失败,' + sys_email_sqlca.SQLErrText GOTO ext END IF local_userid = ins_userid local_username = username local_cusid = ls_CusID ext: return rslt end function public function integer uf_getlocalusername (ref string arg_localusername, ref string arg_msg);Int rslt = 1 IF local_userid <= 0 THEN IF pf_getlocalcominfo(arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF END IF IF local_userid <= 0 THEN rslt = 0 arg_msg = '企业未注册' GOTO ext END IF arg_localusername = local_username ext: RETURN rslt end function public function integer uf_regcom (s_aifmb_regcomrequest arg_s_request, ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy IF sys_email_sqlca.DBHandle() <= 0 THEN rslt = 0 arg_msg = '未设置邮件数据库' GOTO ext END IF IF local_cusid = '' THEN IF pf_getlocalcominfo(arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF END IF IF local_cusid = '' THEN rslt = 0 arg_msg = '请启动后台通信服务初始化通信数据库' GOTO ext END IF oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewRegComRequest() request.CusID = local_cusid request.username = arg_s_request.username request.comcode = arg_s_request.comcode request.psw = arg_s_request.psw request.logname = arg_s_request.logname request.repname = arg_s_request.repname request.logpsw = arg_s_request.logpsw request.tele = arg_s_request.tele request.phone = arg_s_request.phone request.Address = arg_s_request.Address request.email = arg_s_request.email request.QQ = arg_s_request.QQ request.dscrp = arg_s_request.dscrp request.UserType = arg_s_request.UserType oleobject response response = lo_proxy.RegCom(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF Long ll_userid ll_userid = response.UserID String username String psw String tele String phone String Address String comcode String usercode String logname String logpsw usercode = response.usercode username = arg_s_request.username psw = arg_s_request.psw tele = arg_s_request.tele phone = arg_s_request.phone Address = arg_s_request.Address comcode = arg_s_request.comcode logname = arg_s_request.logname logpsw = arg_s_request.logpsw UPDATE LJFIEB_ComInfo SET username = :username, psw = :psw, tele = :tele, phone = :phone, address = :Address, comcode = :comcode, usercode = :usercode, userid = :ll_userid, logname = :logname, logpsw = :logpsw WHERE CusID = :local_cusid Using sys_email_sqlca; IF sys_email_sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '注册成功,但更新本地信息失败,' + sys_email_sqlca.SQLErrText GOTO ext END IF IF sys_email_sqlca.sqlnrows = 0 THEN rslt = 0 arg_msg = '企业本地信息不存在' GOTO ext END IF UPDATE u_user SET aifmb_logname = :logname, aifmb_logpsw = :logpsw WHERE scid = :sys_scid AND Empid = :sys_empid Using sqlca; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '绑定当前操作员失败,' + sqlca.SQLErrText GOTO ext END IF if sqlca.sqlnrows = 0 then rslt = 0 arg_msg = '绑定当前操作员失败' goto ext end if pf_reset() ext: Destroy ll_proxyfactory IF rslt = 1 THEN COMMIT Using sys_email_sqlca; COMMIT Using sqlca; ELSE ROLLBACK Using sys_email_sqlca; ROLLBACK Using sqlca; END IF RETURN rslt end function public function integer uf_commatch (string arg_usercode, string arg_username, string arg_psw, ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy IF local_cusid = '' THEN IF pf_getlocalcominfo(arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF END IF IF local_cusid = '' THEN rslt = 0 arg_msg = '请启动后台通信服务初始化通信数据库' GOTO ext END IF oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewComMatchRequest() request.CusID = local_cusid request.usercode = arg_usercode request.username = arg_username request.psw = arg_psw oleobject response response = lo_proxy.ComMatch(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF Long ll_userid String usercode String username String psw String tele String phone String Address String email String dscrp String comcode Long auditflag ll_userid = response.UserID comcode = response.comcode tele = response.tele phone = response.phone Address = response.Address email = response.email dscrp = response.dscrp auditflag = response.auditflag String ls_rCusID ls_rCusID = response.CusID usercode = arg_usercode username = arg_username psw = arg_psw UPDATE LJFIEB_ComInfo SET username = :username, psw = :psw, tele = :tele, phone = :phone, address = :Address, comcode = :comcode, usercode = :usercode, userid = :ll_userid WHERE CusID = :local_cusid Using sys_email_sqlca; IF sys_email_sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '更新本地信息失败,' + sys_email_sqlca.SQLErrText GOTO ext END IF IF local_cusid <> ls_rCusID THEN UPDATE LJFIEB_ComInfo SET CusID = :ls_rCusID WHERE CusID = :local_cusid Using sys_email_sqlca; IF sys_email_sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '1.同步企业唯一码失败,' + sys_email_sqlca.SQLErrText GOTO ext END IF UPDATE LJFIEB_CusComm SET CusID = :ls_rCusID WHERE CusID = :local_cusid AND CusType = 0 Using sys_email_sqlca; IF sys_email_sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '2.同步企业唯一码失败,' + sys_email_sqlca.SQLErrText GOTO ext END IF END IF pf_reset() ext: Destroy ll_proxyfactory IF rslt = 1 THEN COMMIT Using sys_email_sqlca; ELSE ROLLBACK Using sys_email_sqlca; END IF RETURN rslt end function public function integer uf_searchproductannexlist (long arg_relationid, long arg_pageindex, long arg_pagesize, ref s_aifmb_searchproductannex arg_annexlist[], ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewSearchProductAnnexListRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF request.RelationID = arg_relationid request.PageIndex = arg_pageindex request.PageSize = arg_pagesize oleobject response response = lo_proxy.SearchProductAnnexList(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF Long cnt cnt = response.SearchProductAnnexList.Count Long i oleobject lo_annex s_aifmb_SearchProductAnnex arr_annex[] Long k = 0 Any lb_pic FOR i = 0 To cnt - 1 lo_annex = response.SearchProductAnnexList.GetItem(i) k++ arr_annex[k].RelationID = lo_annex.RelationID arr_annex[k].AnnexID = lo_annex.AnnexID arr_annex[k].AnnexName = lo_annex.AnnexName // arr_annex[k].AnnexPermission = lo_annex.AnnexPermission // arr_annex[k].AnnexType = lo_annex.AnnexType arr_annex[k].FileSuffix = lo_annex.FileSuffix // arr_annex[k].FileSize = lo_annex.FileSize arr_annex[k].Filename = lo_annex.Filename arr_annex[k].FilePath = lo_annex.FilePath lb_pic = lo_annex.Pic IF ClassName(lb_pic) = 'blob' THEN arr_annex[k].Pic = lb_pic END IF arr_annex[k].PicUrl = lo_annex.PicUrl NEXT arg_AnnexList = arr_annex ext: Destroy ll_proxyfactory IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function public function integer uf_addproductannex (longlong arg_relationid, s_aifmb_productannexdata arg_s_pics[], ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewAddProductAnnexRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF request.RelationID = arg_relationid oleobject lo_list oleobject lo_promotions lo_list = lo_proxy.NewArrOfIProductAnnexData() Long i FOR i = 1 To UpperBound(arg_s_pics) lo_promotions = lo_proxy.NewProductAnnexData() lo_promotions.AnnexName = arg_s_pics[i].AnnexName lo_promotions.Pic = arg_s_pics[i].Pic lo_list.Add(lo_promotions) NEXT request.ProductAnnexList = lo_list oleobject response response = lo_proxy.AddProductAnnex(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF ext: Destroy ll_proxyfactory RETURN rslt end function public function integer uf_delproductannex (longlong arg_annexid[], ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewDelProductAnnexRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF oleobject lo_list lo_list = lo_proxy.NewArrOflong() Long i for i = 1 to upperbound(arg_annexid) lo_list.Add(arg_annexid[i]) next request.AnnexIDList = lo_list oleobject response response = lo_proxy.DelProductAnnex(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF ext: Destroy ll_proxyfactory RETURN rslt end function public function integer uf_requestquote (s_aifmb_requestquotedata arg_s_data[], ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewRequestQuoteRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF oleobject lo_list oleobject lo_promotions lo_list = lo_proxy.NewArrOfIRequestQuoteData() Long i FOR i = 1 To UpperBound(arg_s_data) lo_promotions = lo_proxy.NewRequestQuoteData() lo_promotions.ProductID = arg_s_data[i].ProductID lo_promotions.Reason = arg_s_data[i].Reason lo_promotions.SaleQuantity = arg_s_data[i].SaleQuantity lo_promotions.Capacity = arg_s_data[i].Capacity lo_list.Add(lo_promotions) NEXT request.RequestQuotes = lo_list oleobject response response = lo_proxy.RequestQuote(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF ext: Destroy ll_proxyfactory RETURN rslt end function public function integer uf_getrequestquoteanswer (ref s_aifmb_getrequestquoteanswerdata s_data[], ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewGetRequestQuoteAnswerRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF oleobject response response = lo_proxy.GetRequestQuoteAnswer(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF Long cnt,i cnt = response.AnswerList.Count oleobject lo_productcode s_aifmb_getrequestquoteanswerdata s_rslt[] int j = 0 FOR i = 0 To cnt - 1 lo_productcode = response.AnswerList.GetItem(i) j++ s_rslt[j].ProductID = lo_productcode.ProductID s_rslt[j].AcceptFlag = lo_productcode.AcceptFlag s_rslt[j].RejectReason = lo_productcode.RejectReason NEXT s_data = s_rslt ext: Destroy ll_proxyfactory IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function public function integer uf_sync_node (ref string arg_msg);Int rslt = 1 uo_aifmbproxy uo_factory uo_factory = Create uo_aifmbproxy oleobject ll_proxy IF uo_factory.getproxy(ll_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = ll_proxy.NewGetAllClassNodesRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF oleobject response response = ll_proxy.GetAllClassNodes(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF DELETE From aifmb_ClassGroup; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '删除类缓存失败,'+sqlca.SQLErrText GOTO ext END IF DELETE From aifmb_ClassNode; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '删除基类缓存失败,'+sqlca.SQLErrText GOTO ext END IF DELETE From aifmb_ClassRelation; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '删除基类关系失败,'+sqlca.SQLErrText GOTO ext END IF DELETE From aifmb_NodeAttribute; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '删除基类属性失败,'+sqlca.SQLErrText GOTO ext END IF DELETE From aifmb_Options; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '删除基类属性值失败,'+sqlca.SQLErrText GOTO ext END IF DELETE From aifmb_ProductCode; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '删除标准物料失败,'+sqlca.SQLErrText GOTO ext END IF DELETE From aifmb_Shortcut WHERE UserID = 0; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '删除快捷方式失败,' + sqlca.SQLErrText GOTO ext END IF Long ll_cnt, i Long lg_classid, lg_parentid String lg_ClassName, lg_AliasName Boolean lg_IsInUse oleobject lo_classgroup ll_cnt = response.AllClassGroups.Count FOR i = 0 To ll_cnt - 1 lo_classgroup = response.AllClassGroups.GetItem(i) lg_classid = lo_classgroup.ClassID lg_parentid = lo_classgroup.ParentID lg_ClassName = lo_classgroup.ClassName lg_AliasName = lo_classgroup.AliasName lg_IsInUse = lo_classgroup.IsInUse INSERT INTO aifmb_ClassGroup(ClassID,ParentID,ClassName,AliasName,IsInUse) Values(:lg_classid,:lg_parentid,:lg_ClassName,:lg_AliasName,:lg_IsInUse); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '插入类缓存失败,'+sqlca.SQLErrText GOTO ext END IF NEXT Long ln_NodeID String ln_NodeName Boolean ln_IsInUse oleobject lo_classnode ll_cnt = response.AllClassNodes.Count FOR i = 0 To ll_cnt - 1 lo_classnode = response.AllClassNodes.GetItem(i) ln_NodeID = lo_classnode.NodeID ln_NodeName = lo_classnode.NodeName ln_IsInUse = lo_classnode.IsInUse INSERT INTO aifmb_ClassNode(NodeID,NodeName,IsInUse) Values(:ln_NodeID,:ln_NodeName,:ln_IsInUse); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '插入基类缓存失败,'+sqlca.SQLErrText GOTO ext END IF NEXT Long lr_ClassID, lr_NodeID oleobject lo_relaction ll_cnt = response.AllClassRelations.Count FOR i = 0 To ll_cnt - 1 lo_relaction = response.AllClassRelations.GetItem(i) lr_ClassID = lo_relaction.ClassID lr_NodeID = lo_relaction.NodeID INSERT INTO aifmb_ClassRelation(ClassID,NodeID) Values(:lr_ClassID,:lr_NodeID); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '插入基类关系缓存失败,'+sqlca.SQLErrText GOTO ext END IF NEXT Long la_AttID, la_NodeID String la_AttName oleobject lo_nodeatt ll_cnt = response.AllNodeAttributes.Count FOR i = 0 To ll_cnt - 1 lo_nodeatt = response.AllNodeAttributes.GetItem(i) la_AttID = lo_nodeatt.AttID la_NodeID = lo_nodeatt.NodeID la_AttName = lo_nodeatt.AttName INSERT INTO aifmb_NodeAttribute(AttID,NodeID,AttName) Values(:la_AttID,:la_NodeID,:la_AttName); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '插入基类属性失败,'+sqlca.SQLErrText GOTO ext END IF NEXT Long lo_AttID, lo_OptionID, lo_OptionType String lo_OptionName, lo_OptionValue oleobject lo_option ll_cnt = response.AllOptions.Count FOR i = 1 To ll_cnt - 1 lo_option = response.AllOptions.GetItem(i) lo_AttID = lo_option.AttID lo_OptionID = lo_option.OptionID lo_OptionType = lo_option.OptionType lo_OptionName = lo_option.OptionName lo_OptionValue = lo_option.OptionValue INSERT INTO aifmb_Options(AttID,OptionID,OptionType,OptionName,OptionValue) Values(:lo_AttID,:lo_OptionID,:lo_OptionType,:lo_OptionName,:lo_OptionValue); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '插入基类属性值失败,'+sqlca.SQLErrText GOTO ext END IF NEXT oleobject lo_product Long lp_ProductID Long lp_NodeID String lp_mtrlcode String lp_mtrlname String lp_mtrlmode String lp_unit Decimal lp_net_weight Decimal lp_gross_weight Decimal lp_cubage String lp_mtrlengname String lp_dscrp String lp_gydscrp String lp_QualityDscrp DateTime lp_sys_changetime ll_cnt = response.AllStandardProducts.Count FOR i = 1 To ll_cnt - 1 lo_product = response.AllStandardProducts.GetItem(i) lp_ProductID = lo_product.ProductID // lp_CustCode = lo_product.CustCode lp_NodeID = lo_product.NodeID // lp_scid = lo_product.scid // lp_mtrlid = lo_product.mtrlid lp_mtrlcode = lo_product.mtrlcode lp_mtrlname = lo_product.mtrlname lp_mtrlmode = lo_product.mtrlmode lp_unit = lo_product.unit lp_net_weight = lo_product.net_weight lp_gross_weight = lo_product.gross_weight lp_cubage = lo_product.cubage lp_mtrlengname = lo_product.mtrlengname lp_sys_changetime = lo_product.sys_changetime lp_dscrp = lo_product.dscrp // lp_isuse = lo_product.isuse // lp_isStandard = lo_product.isStandard lp_gydscrp = '' lp_QualityDscrp = lo_product.QualityDscrp INSERT INTO aifmb_ProductCode (ProductID ,NodeID ,mtrlcode ,mtrlname ,mtrlmode ,unit ,net_weight ,gross_weight ,cubage ,mtrlengname ,dscrp ,gydscrp ,QualityDscrp ,sys_changetime ,downloadtime) VALUES (:lp_ProductID ,:lp_NodeID ,:lp_mtrlcode ,:lp_mtrlname ,:lp_mtrlmode ,:lp_unit ,:lp_net_weight ,:lp_gross_weight ,:lp_cubage ,:lp_mtrlengname ,:lp_dscrp ,:lp_gydscrp ,:lp_QualityDscrp ,:lp_sys_changetime ,GETDATE()); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '插入标准物料失败,'+sqlca.SQLErrText GOTO ext END IF NEXT oleobject lo_shortcut Long lsc_LinkID Long lsc_UserID Long lsc_ParentID String lsc_LinkName String lsc_AliasName Boolean lsc_IsInUse Long lsc_SortCode String lsc_QueryValue Long lsc_LinkType String lsc_URL ll_cnt = response.AllShortcuts.Count FOR i = 0 To ll_cnt - 1 lo_shortcut = response.AllShortcuts.GetItem(i) lsc_LinkID = lo_shortcut.LinkID lsc_UserID = lo_shortcut.UserID lsc_ParentID = lo_shortcut.ParentID lsc_LinkName = lo_shortcut.LinkName lsc_AliasName = lo_shortcut.AliasName lsc_IsInUse = lo_shortcut.IsInUse lsc_SortCode = lo_shortcut.SortCode lsc_QueryValue = lo_shortcut.QueryValue lsc_LinkType = lo_shortcut.LinkType lsc_URL = lo_shortcut.URL UPDATE aifmb_Shortcut SET UserID = :lsc_UserID, ParentID = :lsc_ParentID, LinkName = :lsc_LinkName, AliasName = :lsc_AliasName, IsInUse = :lsc_IsInUse, SortCode = :lsc_SortCode, QueryValue = :lsc_QueryValue, LinkType = :lsc_LinkType, URL = :lsc_URL Where LinkID = :lsc_LinkID; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '更新快捷方式失败,'+sqlca.SQLErrText GOTO ext END IF IF sqlca.SQLNRows = 0 THEN INSERT INTO aifmb_Shortcut (LinkID, UserID, ParentID, LinkName, AliasName, IsInUse, SortCode, QueryValue, LinkType, URL) VALUES (:lsc_LinkID, :lsc_UserID, :lsc_ParentID, :lsc_LinkName, :lsc_AliasName, :lsc_IsInUse, :lsc_SortCode, :lsc_QueryValue, :lsc_LinkType, :lsc_URL); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '插入快捷方式失败,'+sqlca.SQLErrText GOTO ext END IF END IF NEXT DateTime curTime curTime = response.curTime pf_SetSyncTime(curTime) ext: Destroy uo_factory IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function public function datetime pf_getsynctime ();String ls_key = '0642DA09-64B8-490E-A5E7-B52128503E9D' String ls_value DateTime ld_rslt SELECT strvalue INTO :ls_value FROM aifmb_PBGVars Where strkey = :ls_key; IF sqlca.SQLCode <> 0 THEN setnull(ld_rslt) ELSE ld_rslt = DateTime(Date(Mid(ls_value, 1, 10)), Time(Mid(ls_value, 12))) END IF RETURN ld_rslt end function public subroutine pf_setsynctime (datetime arg_lasttime);String ls_key = '0642DA09-64B8-490E-A5E7-B52128503E9D' String ls_value ls_value = String(arg_lasttime, 'yyyy-MM-dd HH:mm:ss') UPDATE aifmb_PBGVars SET strvalue = :ls_value Where strkey = :ls_key; IF sqlca.SQLCode <> 0 THEN RETURN END IF IF sqlca.SQLNRows = 0 THEN INSERT INTO aifmb_PBGVars(strkey, strvalue) Values(:ls_key, :ls_value); END IF end subroutine public function integer uf_sync_node_bytime (ref string arg_msg);Int rslt = 1 DateTime arg_lasttime arg_lasttime = pf_GetSyncTime() uo_aifmbproxy uo_factory uo_factory = Create uo_aifmbproxy oleobject ll_proxy IF uo_factory.getproxy(ll_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = ll_proxy.NewGetAllClassNodesRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF IF Not IsNull(arg_lasttime) THEN request.LastTime = arg_lasttime END IF oleobject response response = ll_proxy.GetAllClassNodes(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF Long ll_cnt, i Long lg_classid, lg_parentid String lg_ClassName, lg_AliasName Boolean lg_IsInUse oleobject lo_classgroup ll_cnt = response.AllClassGroups.Count FOR i = 0 To ll_cnt - 1 lo_classgroup = response.AllClassGroups.GetItem(i) lg_classid = lo_classgroup.ClassID lg_parentid = lo_classgroup.ParentID lg_ClassName = lo_classgroup.ClassName lg_AliasName = lo_classgroup.AliasName lg_IsInUse = lo_classgroup.IsInUse UPDATE aifmb_ClassGroup SET ParentID = :lg_parentid, ClassName = :lg_ClassName, AliasName = :lg_AliasName, IsInUse = :lg_IsInUse Where ClassID = :lg_classid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '更新类缓存失败,' + sqlca.SQLErrText GOTO ext END IF IF sqlca.SQLNRows = 0 THEN INSERT INTO aifmb_ClassGroup(ClassID,ParentID,ClassName,AliasName,IsInUse) Values(:lg_classid,:lg_parentid,:lg_ClassName,:lg_AliasName,:lg_IsInUse); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '插入类缓存失败,' + sqlca.SQLErrText GOTO ext END IF END IF NEXT Long ln_NodeID String ln_NodeName Boolean ln_IsInUse oleobject lo_classnode ll_cnt = response.AllClassNodes.Count FOR i = 0 To ll_cnt - 1 lo_classnode = response.AllClassNodes.GetItem(i) ln_NodeID = lo_classnode.NodeID ln_NodeName = lo_classnode.NodeName ln_IsInUse = lo_classnode.IsInUse UPDATE aifmb_ClassNode SET NodeName = :ln_NodeName, IsInUse = :ln_IsInUse Where NodeID = :ln_NodeID; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '更新基类缓存失败,'+sqlca.SQLErrText GOTO ext END IF IF sqlca.SQLNRows = 0 THEN INSERT INTO aifmb_ClassNode(NodeID,NodeName,IsInUse) Values(:ln_NodeID,:ln_NodeName,:ln_IsInUse); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '插入基类缓存失败,'+sqlca.SQLErrText GOTO ext END IF END IF NEXT Long lr_ClassID, lr_NodeID oleobject lo_relaction ll_cnt = response.AllClassRelations.Count FOR i = 0 To ll_cnt - 1 lo_relaction = response.AllClassRelations.GetItem(i) lr_ClassID = lo_relaction.ClassID lr_NodeID = lo_relaction.NodeID UPDATE aifmb_ClassRelation SET ClassID = :lr_ClassID WHERE ClassID = :lr_ClassID And NodeID = :lr_NodeID; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '更新基类关系缓存失败,'+sqlca.SQLErrText GOTO ext END IF IF sqlca.SQLNRows = 0 THEN INSERT INTO aifmb_ClassRelation(ClassID,NodeID) Values(:lr_ClassID,:lr_NodeID); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '插入基类关系缓存失败,'+sqlca.SQLErrText GOTO ext END IF END IF NEXT Long la_AttID, la_NodeID String la_AttName oleobject lo_nodeatt ll_cnt = response.AllNodeAttributes.Count FOR i = 0 To ll_cnt - 1 lo_nodeatt = response.AllNodeAttributes.GetItem(i) la_AttID = lo_nodeatt.AttID la_NodeID = lo_nodeatt.NodeID la_AttName = lo_nodeatt.AttName UPDATE aifmb_NodeAttribute SET NodeID = :la_NodeID, AttName = :la_AttName Where AttID = :la_AttID; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '更新基类属性失败,'+sqlca.SQLErrText GOTO ext END IF IF sqlca.SQLNRows = 0 THEN INSERT INTO aifmb_NodeAttribute(AttID,NodeID,AttName) Values(:la_AttID,:la_NodeID,:la_AttName); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '插入基类属性失败,'+sqlca.SQLErrText GOTO ext END IF END IF NEXT Long lo_AttID, lo_OptionID, lo_OptionType String lo_OptionName, lo_OptionValue oleobject lo_option ll_cnt = response.AllOptions.Count FOR i = 1 To ll_cnt - 1 lo_option = response.AllOptions.GetItem(i) lo_AttID = lo_option.AttID lo_OptionID = lo_option.OptionID lo_OptionType = lo_option.OptionType lo_OptionName = lo_option.OptionName lo_OptionValue = lo_option.OptionValue UPDATE aifmb_Options SET AttID = :lo_AttID, OptionType = :lo_OptionType, OptionName = :lo_OptionName, OptionValue = :lo_OptionValue Where OptionID = :lo_OptionID; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '更新基类属性值失败,'+sqlca.SQLErrText GOTO ext END IF IF sqlca.SQLNRows = 0 THEN INSERT INTO aifmb_Options(AttID,OptionID,OptionType,OptionName,OptionValue) Values(:lo_AttID,:lo_OptionID,:lo_OptionType,:lo_OptionName,:lo_OptionValue); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '插入基类属性值失败,'+sqlca.SQLErrText GOTO ext END IF END IF NEXT oleobject lo_product Long lp_ProductID Long lp_NodeID String lp_mtrlcode String lp_mtrlname String lp_mtrlmode String lp_unit Decimal lp_net_weight Decimal lp_gross_weight Decimal lp_cubage String lp_mtrlengname String lp_dscrp Long lp_isuse String lp_gydscrp String lp_QualityDscrp DateTime lp_sys_changetime ll_cnt = response.AllStandardProducts.Count FOR i = 1 To ll_cnt - 1 lo_product = response.AllStandardProducts.GetItem(i) lp_ProductID = lo_product.ProductID // lp_CustCode = lo_product.CustCode lp_NodeID = lo_product.NodeID // lp_scid = lo_product.scid // lp_mtrlid = lo_product.mtrlid lp_mtrlcode = lo_product.mtrlcode lp_mtrlname = lo_product.mtrlname lp_mtrlmode = lo_product.mtrlmode lp_unit = lo_product.unit lp_net_weight = lo_product.net_weight lp_gross_weight = lo_product.gross_weight lp_cubage = lo_product.cubage lp_mtrlengname = lo_product.mtrlengname lp_sys_changetime = lo_product.sys_changetime lp_dscrp = lo_product.dscrp lp_isuse = lo_product.isuse // lp_isStandard = lo_product.isStandard lp_gydscrp = '' lp_QualityDscrp = lo_product.QualityDscrp UPDATE aifmb_ProductCode SET NodeID = :lp_NodeID ,mtrlcode = :lp_mtrlcode ,mtrlname = :lp_mtrlname ,mtrlmode = :lp_mtrlmode ,unit = :lp_unit ,net_weight = :lp_net_weight ,gross_weight = :lp_gross_weight ,cubage = :lp_cubage ,mtrlengname = :lp_mtrlengname ,isuse = :lp_isuse ,dscrp = :lp_dscrp ,gydscrp = :lp_gydscrp ,QualityDscrp = :lp_QualityDscrp ,sys_changetime = :lp_sys_changetime Where ProductID = :lp_ProductID; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '更新标准物料失败,'+sqlca.SQLErrText GOTO ext END IF IF sqlca.SQLNRows = 0 THEN INSERT INTO aifmb_ProductCode (ProductID ,NodeID ,mtrlcode ,mtrlname ,mtrlmode ,unit ,net_weight ,gross_weight ,cubage ,mtrlengname ,isuse ,dscrp ,gydscrp ,QualityDscrp ,sys_changetime ,downloadtime) VALUES (:lp_ProductID ,:lp_NodeID ,:lp_mtrlcode ,:lp_mtrlname ,:lp_mtrlmode ,:lp_unit ,:lp_net_weight ,:lp_gross_weight ,:lp_cubage ,:lp_mtrlengname ,:lp_isuse ,:lp_dscrp ,:lp_gydscrp ,:lp_QualityDscrp ,:lp_sys_changetime ,GETDATE()); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '插入标准物料失败,'+sqlca.SQLErrText GOTO ext END IF END IF NEXT oleobject lo_shortcut Long lsc_LinkID Long lsc_UserID Long lsc_ParentID String lsc_LinkName String lsc_AliasName Boolean lsc_IsInUse Long lsc_SortCode String lsc_QueryValue Long lsc_LinkType String lsc_URL ll_cnt = response.AllShortcuts.Count FOR i = 0 To ll_cnt - 1 lo_shortcut = response.AllShortcuts.GetItem(i) lsc_LinkID = lo_shortcut.LinkID lsc_UserID = lo_shortcut.UserID lsc_ParentID = lo_shortcut.ParentID lsc_LinkName = lo_shortcut.LinkName lsc_AliasName = lo_shortcut.AliasName lsc_IsInUse = lo_shortcut.IsInUse lsc_SortCode = lo_shortcut.SortCode lsc_QueryValue = lo_shortcut.QueryValue lsc_LinkType = lo_shortcut.LinkType lsc_URL = lo_shortcut.URL UPDATE aifmb_Shortcut SET UserID = :lsc_UserID, ParentID = :lsc_ParentID, LinkName = :lsc_LinkName, AliasName = :lsc_AliasName, IsInUse = :lsc_IsInUse, SortCode = :lsc_SortCode, QueryValue = :lsc_QueryValue, LinkType = :lsc_LinkType, URL = :lsc_URL Where LinkID = :lsc_LinkID; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '更新快捷方式失败,'+sqlca.SQLErrText GOTO ext END IF IF sqlca.SQLNRows = 0 THEN INSERT INTO aifmb_Shortcut (LinkID, UserID, ParentID, LinkName, AliasName, IsInUse, SortCode, QueryValue, LinkType, URL) VALUES (:lsc_LinkID, :lsc_UserID, :lsc_ParentID, :lsc_LinkName, :lsc_AliasName, :lsc_IsInUse, :lsc_SortCode, :lsc_QueryValue, :lsc_LinkType, :lsc_URL); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '插入快捷方式失败,'+sqlca.SQLErrText GOTO ext END IF END IF NEXT DateTime curTime curTime = response.curTime pf_SetSyncTime(curTime) ext: Destroy uo_factory IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function public function integer uf_getentuserlist (ref datastore arg_ds, ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewGetEntUserListRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF oleobject response response = lo_proxy.GetEntUserList(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF IF Not IsValid(arg_ds) THEN arg_ds = Create datastore END IF IF arg_ds.DataObject <> 'ds_aifmb_entuser' THEN arg_ds.DataObject = 'ds_aifmb_entuser' END IF Long cnt, row Long i cnt = response.EnterpriseUserList.Count oleobject lo_productcode FOR i = 0 To cnt - 1 lo_productcode = response.EnterpriseUserList.GetItem(i) row = arg_ds.InsertRow(0) arg_ds.Object.UserID[row] = lo_productcode.UserID arg_ds.Object.repid[row] = lo_productcode.repid arg_ds.Object.logname[row] = lo_productcode.logname arg_ds.Object.repname[row] = lo_productcode.repname arg_ds.Object.psw[row] = lo_productcode.psw arg_ds.Object.tele[row] = lo_productcode.tele arg_ds.Object.phone[row] = lo_productcode.phone arg_ds.Object.Address[row] = lo_productcode.Address arg_ds.Object.email[row] = lo_productcode.email arg_ds.Object.QQ[row] = lo_productcode.QQ arg_ds.Object.Powers[row] = lo_productcode.Powers arg_ds.Object.UserType[row] = lo_productcode.UserType arg_ds.Object.inuse[row] = lo_productcode.inuse NEXT ext: Destroy ll_proxyfactory IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function public function integer uf_getuserrightlist (ref datastore arg_ds, ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewGetUserRightListRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF oleobject response response = lo_proxy.GetUserRightList(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF IF Not IsValid(arg_ds) THEN arg_ds = Create datastore END IF IF arg_ds.DataObject <> 'ds_aifmb_userrightlist' THEN arg_ds.DataObject = 'ds_aifmb_userrightlist' END IF Long cnt, row Long i cnt = response.UserRightList.Count oleobject lo_productcode FOR i = 0 To cnt - 1 lo_productcode = response.UserRightList.GetItem(i) row = arg_ds.InsertRow(0) arg_ds.Object.RightsIndex[row] = lo_productcode.RightsIndex arg_ds.Object.RightsName[row] = lo_productcode.RightsName NEXT ext: Destroy ll_proxyfactory IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function public function integer uf_setbuyinfo (ref s_aifmb_buyinfo arg_promotions_arr[], ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewSetBuyInfoRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF oleobject lo_list oleobject lo_promotions lo_list = lo_proxy.NewArrOfIBuyInfo() oleobject lo_list_pics lo_list_pics = lo_proxy.NewArrOfIArrOfIProductAnnexData() oleobject lo_list_pic oleobject lo_pic Long i, j FOR i = 1 To UpperBound(arg_promotions_arr) lo_promotions = lo_proxy.NewBuyInfo() IF arg_promotions_arr[i].BuyID > 0 THEN lo_promotions.BuyID = arg_promotions_arr[i].BuyID END IF lo_promotions.EntID = arg_promotions_arr[i].EntID lo_promotions.CreaterID = arg_promotions_arr[i].CreaterID // lo_promotions.CreatTime = arg_promotions_arr[i].CreatTime lo_promotions.IsAudit = arg_promotions_arr[i].IsAudit lo_promotions.AuditerID = arg_promotions_arr[i].AuditerID // lo_promotions.AuditTime = arg_promotions_arr[i].AuditTime IF Not IsNull(arg_promotions_arr[i].StartTime) THEN lo_promotions.StartTime = arg_promotions_arr[i].StartTime END IF IF Not IsNull(arg_promotions_arr[i].EndTime) THEN lo_promotions.EndTime = arg_promotions_arr[i].EndTime END IF lo_promotions.BuyCode = arg_promotions_arr[i].BuyCode lo_promotions.BuyName = arg_promotions_arr[i].BuyName lo_promotions.BuyTitle = arg_promotions_arr[i].BuyTitle lo_promotions.BuyURL = arg_promotions_arr[i].BuyURL lo_promotions.BuyRange = arg_promotions_arr[i].BuyRange lo_promotions.BuyRemark = arg_promotions_arr[i].BuyRemark lo_promotions.MonthlyUse = arg_promotions_arr[i].MonthlyUse lo_promotions.DesiredPrice = arg_promotions_arr[i].DesiredPrice lo_promotions.Quality = arg_promotions_arr[i].Quality lo_promotions.NodeID = arg_promotions_arr[i].NodeID lo_promotions.StandardCode = arg_promotions_arr[i].StandardCode lo_promotions.ProductID = arg_promotions_arr[i].ProductID lo_promotions.ProCode = arg_promotions_arr[i].ProCode lo_promotions.ProName = arg_promotions_arr[i].ProName lo_promotions.ProMode = arg_promotions_arr[i].ProMode lo_promotions.ProUnit = arg_promotions_arr[i].ProUnit lo_promotions.IsPublic = arg_promotions_arr[i].IsPublic lo_promotions.CreaterName = arg_promotions_arr[i].CreaterName lo_promotions.CreaterPhone = arg_promotions_arr[i].CreaterPhone lo_promotions.CreaterEmail = arg_promotions_arr[i].CreaterEmail lo_promotions.CreaterQQ = arg_promotions_arr[i].CreaterQQ lo_list.Add(lo_promotions) lo_list_pic = lo_proxy.NewArrOfIProductAnnexData() FOR j = 1 To UpperBound(arg_promotions_arr[i].pics) lo_pic = lo_proxy.NewProductAnnexData() lo_pic.AnnexName = arg_promotions_arr[i].pics[j].Label lo_pic.Pic = arg_promotions_arr[i].pics[j].Data lo_list_pic.Add(lo_pic) NEXT lo_list_pics.Add(lo_list_pic) NEXT request.BuyInfoList = lo_list request.ProductAnnexList = lo_list_pics oleobject response response = lo_proxy.SetBuyInfo(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF FOR i = 1 To UpperBound(arg_promotions_arr) arg_promotions_arr[i].BuyID = response.BuyIDList.GetItem(i - 1) NEXT ext: Destroy ll_proxyfactory RETURN rslt end function public function integer uf_setentuserright (ref s_aifmb_a_user arg_users[], ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewSetEntUserRightRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF oleobject lo_list oleobject lo_user lo_list = lo_proxy.NewArrOfIa_user() Long i FOR i = 1 To UpperBound(arg_users) lo_user = lo_proxy.Newa_user() IF arg_users[i].repid > 0 THEN lo_user.repid = arg_users[i].repid END IF lo_user.UserID = arg_users[i].UserID lo_user.logname = arg_users[i].logname lo_user.repname = arg_users[i].repname //lo_user.psw = arg_users[i].psw lo_user.tele = arg_users[i].tele lo_user.phone = arg_users[i].phone lo_user.Address = arg_users[i].Address lo_user.email = arg_users[i].email lo_user.QQ = arg_users[i].QQ lo_user.Powers = arg_users[i].Powers lo_user.UserType = arg_users[i].UserType lo_user.inuse = arg_users[i].inuse lo_list.Add(lo_user) NEXT request.a_userList = lo_list oleobject response response = lo_proxy.SetEntUserRight(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF FOR i = 1 To UpperBound(arg_users) arg_users[i].repid = response.a_userList.GetItem(i - 1) NEXT ext: Destroy ll_proxyfactory RETURN rslt end function public function integer uf_addcuscomm (string opcusid, long custype, ref string arg_msg);int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy IF sys_email_sqlca.DBHandle() <= 0 THEN rslt = 0 arg_msg = '未设置邮件数据库' GOTO ext END IF IF local_cusid = '' THEN IF pf_getlocalcominfo(arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF END IF IF local_cusid = '' THEN rslt = 0 arg_msg = '请启动后台通信服务初始化通信数据库' GOTO ext END IF oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewAddCusCommRequest() request.CusID = local_cusid request.OpCusID = opcusid request.custype = custype oleobject response response = lo_proxy.AddCusComm(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF ext: destroy uo_aifmbproxy return rslt end function public function integer uf_getusergrade (ref datastore arg_ds, ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewGetUserGradeRequest() IF IsNull(token) Or token = '' THEN IF pf_GetToken(arg_msg) <> 1 THEN GOTO ext END IF END IF IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF oleobject response response = lo_proxy.GetUserGrade(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF IF Not IsValid(arg_ds) THEN arg_ds = Create datastore END IF IF arg_ds.DataObject <> 'ds_aifmb_entgradeitem' THEN arg_ds.DataObject = 'ds_aifmb_entgradeitem' END IF Long cnt, row Long i cnt = response.GradeList.Count oleobject lo_productcode FOR i = 0 To cnt - 1 lo_productcode = response.GradeList.GetItem(i) row = arg_ds.InsertRow(0) arg_ds.Object.ItemID[row] = lo_productcode.ItemID arg_ds.Object.ItemCode[row] = lo_productcode.ItemCode arg_ds.Object.ItemName[row] = lo_productcode.ItemName arg_ds.Object.Remark[row] = lo_productcode.Remark NEXT ext: Destroy ll_proxyfactory IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function public function integer uf_searchproductentrelationlist (boolean arg_isstandard, datetime arg_starttime, datetime arg_endtime, string arg_keyword, long arg_nodeid_arr[], long arg_entid_arr[], long arg_pageindex, long arg_pagesize, ref datastore arg_ds, ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewSearchProductEntRelationListRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF //request.IsStandard = arg_isstandard request.KeyWord = arg_keyword IF Not IsNull(arg_starttime) THEN request.StartTime = arg_starttime END IF IF Not IsNull(arg_endtime) THEN request.EndTime = arg_endtime END IF String ls_nodeids = '' Long i IF Not IsNull(arg_nodeid_arr) THEN IF UpperBound(arg_nodeid_arr) > 0 THEN ls_nodeids = String(arg_nodeid_arr[1]) FOR i = 2 To UpperBound(arg_nodeid_arr) ls_nodeids += ',' + String(arg_nodeid_arr[i]) NEXT request.NodeID = ls_nodeids END IF END IF String ls_entids = '' IF Not IsNull(arg_entid_arr) THEN IF UpperBound(arg_entid_arr) > 0 THEN ls_entids = String(arg_entid_arr[1]) FOR i = 2 To UpperBound(arg_entid_arr) ls_entids = String(arg_entid_arr[i]) NEXT request.EntID = ls_entids END IF END IF request.PageSize = arg_pagesize request.PageIndex = arg_pageindex oleobject response response = lo_proxy.SearchProductEntRelationList(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF IF Not IsValid(arg_ds) THEN arg_ds = Create datastore END IF IF arg_ds.DataObject <> 'ds_aifmb_searchproductentrelation' THEN arg_ds.DataObject = 'ds_aifmb_searchproductentrelation' END IF Long cnt, row IF Not DirectoryExists('aifmb_tmp') THEN CreateDirectory('aifmb_tmp') END IF String Filename Blob fileblob Any lb_pic cnt = response.SearchProductEntRelationList.Count oleobject lo_productcode FOR i = 0 To cnt - 1 lo_productcode = response.SearchProductEntRelationList.GetItem(i) row = arg_ds.InsertRow(0) arg_ds.Object.ProductID[row] = lo_productcode.ProductID arg_ds.Object.NodeID[row] = lo_productcode.NodeID arg_ds.Object.mtrlid[row] = lo_productcode.mtrlid arg_ds.Object.mtrlcode[row] = lo_productcode.mtrlcode arg_ds.Object.mtrlname[row] = lo_productcode.mtrlname arg_ds.Object.mtrlmode[row] = lo_productcode.mtrlmode arg_ds.Object.unit[row] = lo_productcode.unit arg_ds.Object.net_weight[row] = lo_productcode.net_weight arg_ds.Object.gross_weight[row] = lo_productcode.gross_weight arg_ds.Object.cubage[row] = lo_productcode.cubage arg_ds.Object.mtrlengname[row] = lo_productcode.mtrlengname arg_ds.Object.sys_changetime[row] = lo_productcode.sys_changetime arg_ds.Object.dscrp[row] = lo_productcode.dscrp IF lo_productcode.IsStandard = True THEN arg_ds.Object.IsStandard[row] = 1 ELSE arg_ds.Object.IsStandard[row] = 0 END IF arg_ds.Object.QualityDscrp[row] = lo_productcode.QualityDscrp arg_ds.Object.RelationID[row] = lo_productcode.RelationID arg_ds.Object.EntID[row] = lo_productcode.EntID arg_ds.Object.CreatTime[row] = lo_productcode.CreatTime arg_ds.Object.AttValue[row] = lo_productcode.AttValue arg_ds.Object.usercode[row] = lo_productcode.usercode arg_ds.Object.username[row] = lo_productcode.username IF Not IsNull(lo_productcode.MPrice) THEN arg_ds.Object.MPrice[row] = lo_productcode.MPrice END IF IF Not IsNull(lo_productcode.NPrice) THEN arg_ds.Object.NPrice[row] = lo_productcode.NPrice END IF lb_pic = lo_productcode.Pic IF ClassName(lb_pic) = 'blob' THEN Filename = sys_cur_path + 'aifmb_tmp\relation_min_' + String(lo_productcode.RelationID) + '.png' fileblob = lb_pic IF FileExists(Filename) THEN FileDelete(Filename) END IF arg_ds.Object.Filename[row] = Filename IF f_blobtofile(Filename, fileblob, arg_msg) <> 1 THEN arg_ds.Object.Filename[row] = 'imexport.BMP' END IF ELSE arg_ds.Object.Filename[row] = 'imexport.BMP' END IF NEXT ext: Destroy ll_proxyfactory IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function public function integer uf_searchpromotionslist (datetime arg_starttime, datetime arg_endtime, string arg_keyword, long arg_nodeid_arr[], long arg_entid_arr[], long arg_pageindex, long arg_pagesize, ref datastore arg_ds, ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewSearchPromotionsListRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF request.KeyWords = arg_keyword IF Not IsNull(arg_starttime) THEN request.StartTime = arg_starttime END IF IF Not IsNull(arg_endtime) THEN request.EndTime = arg_endtime END IF String ls_nodeids = '' Long i IF Not IsNull(arg_nodeid_arr) THEN IF UpperBound(arg_nodeid_arr) > 0 THEN ls_nodeids = String(arg_nodeid_arr[1]) FOR i = 2 To UpperBound(arg_nodeid_arr) ls_nodeids += ',' + String(arg_nodeid_arr[i]) NEXT request.NodeIDs = ls_nodeids END IF END IF String ls_entids = '' IF Not IsNull(arg_entid_arr) THEN IF UpperBound(arg_entid_arr) > 0 THEN ls_entids = String(arg_entid_arr[1]) FOR i = 2 To UpperBound(arg_entid_arr) ls_entids = String(arg_entid_arr[i]) NEXT request.EntIDs = ls_entids END IF END IF request.PageIndex = arg_pageindex request.PageSize = arg_pagesize oleobject response response = lo_proxy.SearchPromotionsList(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF IF Not IsValid(arg_ds) THEN arg_ds = Create datastore END IF IF arg_ds.DataObject <> 'ds_aifmb_searchpromotions' THEN arg_ds.DataObject = 'ds_aifmb_searchpromotions' END IF Long cnt, row IF Not DirectoryExists('aifmb_tmp') THEN CreateDirectory('aifmb_tmp') END IF String Filename Blob fileblob cnt = response.SearchPromotionsList.Count oleobject lo_productcode FOR i = 0 To cnt - 1 lo_productcode = response.SearchPromotionsList.GetItem(i) row = arg_ds.InsertRow(0) arg_ds.Object.PromoID[row] = lo_productcode.PromoID arg_ds.Object.EntID[row] = lo_productcode.EntID arg_ds.Object.CreaterID[row] = lo_productcode.CreaterID arg_ds.Object.CreatTime[row] = lo_productcode.CreatTime arg_ds.Object.IsAudit[row] = lo_productcode.IsAudit arg_ds.Object.AuditerID[row] = lo_productcode.AuditerID arg_ds.Object.AuditTime[row] = lo_productcode.AuditTime arg_ds.Object.StartTime[row] = lo_productcode.StartTime arg_ds.Object.EndTime[row] = lo_productcode.EndTime arg_ds.Object.PromoName[row] = lo_productcode.PromoName arg_ds.Object.PromoTitle[row] = lo_productcode.PromoTitle arg_ds.Object.PromoURL[row] = lo_productcode.PromoURL arg_ds.Object.PromoRange[row] = lo_productcode.PromoRange arg_ds.Object.PromoRemark[row] = lo_productcode.PromoRemark arg_ds.Object.PromoCode[row] = lo_productcode.PromoCode arg_ds.Object.NodeID[row] = lo_productcode.NodeID arg_ds.Object.ProductID[row] = lo_productcode.ProductID arg_ds.Object.ProCode[row] = lo_productcode.ProCode arg_ds.Object.ProName[row] = lo_productcode.ProName arg_ds.Object.ProMode[row] = lo_productcode.ProMode arg_ds.Object.ProUnit[row] = lo_productcode.ProUnit // arg_ds.Object.IsPublic[row] = lo_productcode.IsPublic IF lo_productcode.IsPublic = True THEN arg_ds.Object.IsPublic[row] = 1 ELSE arg_ds.Object.IsPublic[row] = 0 END IF arg_ds.Object.PromoType[row] = lo_productcode.PromoType arg_ds.Object.MPrice[row] = lo_productcode.MPrice arg_ds.Object.NPrice[row] = lo_productcode.NPrice arg_ds.Object.usercode[row] = lo_productcode.usercode arg_ds.Object.username[row] = lo_productcode.username arg_ds.Object.tele[row] = lo_productcode.tele arg_ds.Object.phone[row] = lo_productcode.phone arg_ds.Object.email[row] = lo_productcode.email arg_ds.Object.NodeName[row] = lo_productcode.NodeName arg_ds.Object.CreaterName[row] = lo_productcode.CreaterName arg_ds.Object.CreaterPhone[row] = lo_productcode.CreaterPhone arg_ds.Object.CreaterEmail[row] = lo_productcode.CreaterEmail arg_ds.Object.CreaterQQ[row] = lo_productcode.CreaterQQ // IF Not IsNull(fileblob) And IsValid(lo_productcode.Pic) THEN // Filename = 'aifmb_tmp\product_min_' + String(lo_productcode.ProductID) + '.jpg' // fileblob = lo_productcode.Pic // IF FileExists(Filename) THEN // FileDelete(Filename) // END IF // arg_ds.Object.Filename[row] = Filename // IF f_blobtofile(Filename, fileblob, arg_msg) <> 1 THEN // arg_ds.Object.Filename[row] = 'imexport.BMP' // END IF // ELSE // arg_ds.Object.Filename[row] = 'imexport.BMP' // END IF NEXT ext: Destroy ll_proxyfactory IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function public function integer uf_searchbuyinfolist (datetime arg_starttime, datetime arg_endtime, string arg_keyword, long arg_nodeid_arr[], long arg_entid_arr[], long arg_pageindex, long arg_pagesize, ref datastore arg_ds, ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewSearchBuyInfoListRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF request.KeyWords = arg_keyword IF Not IsNull(arg_starttime) THEN request.StartTime = arg_starttime END IF IF Not IsNull(arg_endtime) THEN request.EndTime = arg_endtime END IF String ls_nodeids = '' Long i IF Not IsNull(arg_nodeid_arr) THEN IF UpperBound(arg_nodeid_arr) > 0 THEN ls_nodeids = String(arg_nodeid_arr[1]) FOR i = 2 To UpperBound(arg_nodeid_arr) ls_nodeids += ',' + String(arg_nodeid_arr[i]) NEXT request.NodeIDs = ls_nodeids END IF END IF String ls_entids = '' IF Not IsNull(arg_entid_arr) THEN IF UpperBound(arg_entid_arr) > 0 THEN ls_entids = String(arg_entid_arr[1]) FOR i = 2 To UpperBound(arg_entid_arr) ls_entids = String(arg_entid_arr[i]) NEXT request.EntIDs = ls_entids END IF END IF request.PageIndex = arg_pageindex request.PageSize = arg_pagesize oleobject response response = lo_proxy.SearchBuyInfoList(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF IF Not IsValid(arg_ds) THEN arg_ds = Create datastore END IF IF arg_ds.DataObject <> 'ds_aifmb_searchbuyinfo' THEN arg_ds.DataObject = 'ds_aifmb_searchbuyinfo' END IF Long cnt, row IF Not DirectoryExists('aifmb_tmp') THEN CreateDirectory('aifmb_tmp') END IF String Filename Blob fileblob cnt = response.SearchBuyInfoList.Count oleobject lo_productcode FOR i = 0 To cnt - 1 lo_productcode = response.SearchBuyInfoList.GetItem(i) row = arg_ds.InsertRow(0) arg_ds.Object.BuyID[row] = lo_productcode.BuyID arg_ds.Object.EntID[row] = lo_productcode.EntID arg_ds.Object.CreaterID[row] = lo_productcode.CreaterID arg_ds.Object.CreatTime[row] = lo_productcode.CreatTime arg_ds.Object.IsAudit[row] = lo_productcode.IsAudit arg_ds.Object.AuditerID[row] = lo_productcode.AuditerID arg_ds.Object.AuditTime[row] = lo_productcode.AuditTime arg_ds.Object.StartTime[row] = lo_productcode.StartTime arg_ds.Object.EndTime[row] = lo_productcode.EndTime arg_ds.Object.BuyCode[row] = lo_productcode.BuyCode arg_ds.Object.BuyName[row] = lo_productcode.BuyName arg_ds.Object.BuyTitle[row] = lo_productcode.BuyTitle arg_ds.Object.BuyURL[row] = lo_productcode.BuyURL arg_ds.Object.BuyRange[row] = lo_productcode.BuyRange arg_ds.Object.BuyRemark[row] = lo_productcode.BuyRemark arg_ds.Object.MonthlyUse[row] = lo_productcode.MonthlyUse arg_ds.Object.DesiredPrice[row] = lo_productcode.DesiredPrice arg_ds.Object.Quality[row] = lo_productcode.Quality arg_ds.Object.NodeID[row] = lo_productcode.NodeID arg_ds.Object.StandardCode[row] = lo_productcode.StandardCode arg_ds.Object.ProductID[row] = lo_productcode.ProductID arg_ds.Object.ProCode[row] = lo_productcode.ProCode arg_ds.Object.ProName[row] = lo_productcode.ProName arg_ds.Object.ProMode[row] = lo_productcode.ProMode arg_ds.Object.ProUnit[row] = lo_productcode.ProUnit IF lo_productcode.IsPublic = True THEN arg_ds.Object.IsPublic[row] = 1 ELSE arg_ds.Object.IsPublic[row] = 0 END IF arg_ds.Object.usercode[row] = lo_productcode.usercode arg_ds.Object.username[row] = lo_productcode.username arg_ds.Object.tele[row] = lo_productcode.tele arg_ds.Object.phone[row] = lo_productcode.phone arg_ds.Object.email[row] = lo_productcode.email arg_ds.Object.NodeName[row] = lo_productcode.NodeName arg_ds.Object.CreaterName[row] = lo_productcode.CreaterName arg_ds.Object.CreaterPhone[row] = lo_productcode.CreaterPhone arg_ds.Object.CreaterEmail[row] = lo_productcode.CreaterEmail arg_ds.Object.CreaterQQ[row] = lo_productcode.CreaterQQ // IF Not IsNull(fileblob) And IsValid(lo_productcode.Pic) THEN // Filename = 'aifmb_tmp\product_min_' + String(lo_productcode.ProductID) + '.jpg' // fileblob = lo_productcode.Pic // IF FileExists(Filename) THEN // FileDelete(Filename) // END IF // arg_ds.Object.Filename[row] = Filename // IF f_blobtofile(Filename, fileblob, arg_msg) <> 1 THEN // arg_ds.Object.Filename[row] = 'imexport.BMP' // END IF // ELSE // arg_ds.Object.Filename[row] = 'imexport.BMP' // END IF NEXT ext: Destroy ll_proxyfactory IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function public function integer uf_getlastbuyinforeply (long arg_productid, ref datastore ds_aifmb_buyinforeply, ref string arg_msg); datetime dt_starttime, dt_endtime dt_starttime = DateTime(RelativeDate(Today(), -7), Time(0)) SetNull(dt_endtime) long buyids[] return uf_getbuyinforeplylist(arg_productid, dt_starttime, dt_endtime, buyids, ds_aifmb_buyinforeply, arg_msg) end function public function integer uf_getlastindexproductvalue (long arg_productid, ref datastore ds_aifmb_indexproductvalue, ref string arg_msg);DateTime dt_starttime, dt_endtime dt_starttime = DateTime(RelativeDate(Today(), -7), Time(0)) SetNull(dt_endtime) RETURN uf_getindexproductvaluelist(arg_productid, dt_starttime, dt_endtime, ds_aifmb_indexproductvalue, arg_msg) end function public function integer uf_getlastpromotions (long arg_productid, ref datastore ds_aifmb_promotions, ref string arg_msg);DateTime dt_starttime, dt_endtime dt_starttime = DateTime(RelativeDate(Today(), -7), Time(0)) SetNull(dt_endtime) String keyworks = '' Long nodeids[], entids[] RETURN uf_getpromotionslist(arg_productid, dt_starttime, dt_endtime, keyworks, nodeids, entids, ds_aifmb_promotions, arg_msg) end function public function integer uf_getindexproductvaluelist (long arg_productid, datetime arg_starttime, datetime arg_endtime, ref datastore arg_ds, ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewGetIndexProductValueListRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF request.ProductID = arg_productid IF Not IsNull(arg_starttime) THEN request.StartTime = arg_starttime END IF IF Not IsNull(arg_endtime) THEN request.EndTime = arg_endtime END IF oleobject response response = lo_proxy.GetIndexProductValueList(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF IF Not IsValid(arg_ds) THEN arg_ds = Create datastore END IF IF arg_ds.DataObject <> 'ds_aifmb_indexproductvalue' THEN arg_ds.DataObject = 'ds_aifmb_indexproductvalue' END IF Long i, cnt, row IF Not DirectoryExists('aifmb_tmp') THEN CreateDirectory('aifmb_tmp') END IF String Filename Blob fileblob cnt = response.IndexProductValueList.Count oleobject lo_productcode FOR i = 0 To cnt - 1 lo_productcode = response.IndexProductValueList.GetItem(i) row = arg_ds.InsertRow(0) arg_ds.Object.IndexValueID[row] = lo_productcode.IndexValueID arg_ds.Object.ProductID[row] = lo_productcode.ProductID arg_ds.Object.IndexValue[row] = lo_productcode.IndexValue arg_ds.Object.CreatTime[row] = lo_productcode.CreatTime NEXT ext: Destroy ll_proxyfactory IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function public function integer uf_getpromotionslist (long arg_productid, datetime arg_starttime, datetime arg_endtime, string arg_keyword, long arg_nodeid_arr[], long arg_entid_arr[], ref datastore arg_ds, ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewGetPromotionsListRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF request.KeyWords = arg_keyword IF Not IsNull(arg_starttime) THEN request.BDate = arg_starttime END IF IF Not IsNull(arg_endtime) THEN request.EDate = arg_endtime END IF String ls_nodeids = '' Long i IF Not IsNull(arg_nodeid_arr) THEN IF UpperBound(arg_nodeid_arr) > 0 THEN ls_nodeids = String(arg_nodeid_arr[1]) FOR i = 2 To UpperBound(arg_nodeid_arr) ls_nodeids += ',' + String(arg_nodeid_arr[i]) NEXT request.NodeIDs = ls_nodeids END IF END IF String ls_EntIDs = '' IF Not IsNull(arg_EntID_arr) THEN IF UpperBound(arg_EntID_arr) > 0 THEN ls_EntIDs = String(arg_EntID_arr[1]) FOR i = 2 To UpperBound(arg_EntID_arr) ls_EntIDs += ',' + String(arg_EntID_arr[i]) NEXT request.EntIDs = ls_EntIDs END IF END IF IF Not IsNull(arg_productid) THEN IF arg_productid > 0 THEN request.ProductID = arg_productid END IF END IF oleobject response response = lo_proxy.GetPromotionsList(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF IF Not IsValid(arg_ds) THEN arg_ds = Create datastore END IF IF arg_ds.DataObject <> 'ds_aifmb_promotions' THEN arg_ds.DataObject = 'ds_aifmb_promotions' END IF Long cnt, row cnt = response.Promotions.Count oleobject lo_productcode FOR i = 0 To cnt - 1 lo_productcode = response.Promotions.GetItem(i) row = arg_ds.InsertRow(0) arg_ds.Object.PromoID[row] = lo_productcode.PromoID arg_ds.Object.EntID[row] = lo_productcode.EntID arg_ds.Object.CreaterID[row] = lo_productcode.CreaterID arg_ds.Object.CreatTime[row] = lo_productcode.CreatTime arg_ds.Object.IsAudit[row] = lo_productcode.IsAudit arg_ds.Object.AuditerID[row] = lo_productcode.AuditerID arg_ds.Object.AuditTime[row] = lo_productcode.AuditTime arg_ds.Object.StartTime[row] = lo_productcode.StartTime arg_ds.Object.EndTime[row] = lo_productcode.EndTime arg_ds.Object.PromoName[row] = lo_productcode.PromoName arg_ds.Object.PromoTitle[row] = lo_productcode.PromoTitle arg_ds.Object.PromoURL[row] = lo_productcode.PromoURL arg_ds.Object.PromoRange[row] = lo_productcode.PromoRange arg_ds.Object.PromoRemark[row] = lo_productcode.PromoRemark arg_ds.Object.PromoCode[row] = lo_productcode.PromoCode arg_ds.Object.NodeID[row] = lo_productcode.NodeID arg_ds.Object.ProductID[row] = lo_productcode.ProductID arg_ds.Object.ProCode[row] = lo_productcode.ProCode arg_ds.Object.ProName[row] = lo_productcode.ProName arg_ds.Object.ProMode[row] = lo_productcode.ProMode arg_ds.Object.ProUnit[row] = lo_productcode.ProUnit IF lo_productcode.IsPublic = True THEN arg_ds.Object.IsPublic[row] = 1 ELSE arg_ds.Object.IsPublic[row] = 0 END IF arg_ds.Object.PromoType[row] = lo_productcode.PromoType arg_ds.Object.MPrice[row] = lo_productcode.MPrice arg_ds.Object.NPrice[row] = lo_productcode.NPrice NEXT ext: Destroy ll_proxyfactory IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function public function integer uf_getbuyinforeplylist (long arg_productid, datetime arg_starttime, datetime arg_endtime, long arg_buyids[], ref datastore arg_ds, ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewGetBuyInfoReplyListRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF Long i String ls_buyids IF UpperBound(arg_buyids) > 0 THEN ls_buyids = String(arg_buyids[1]) FOR i = 2 To UpperBound(arg_buyids) ls_buyids += ',' + String(arg_buyids[i]) NEXT request.BuyID = ls_buyids END IF IF Not IsNull(arg_productid) THEN IF arg_productid > 0 THEN request.ProductID = arg_productid END IF END IF IF Not IsNull(arg_starttime) THEN request.StartTime = arg_starttime END IF IF Not IsNull(arg_endtime) THEN request.EndTime = arg_endtime END IF oleobject response response = lo_proxy.GetBuyInfoReplyList(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF IF Not IsValid(arg_ds) THEN arg_ds = Create datastore END IF IF arg_ds.DataObject <> 'ds_aifmb_buyinforeply' THEN arg_ds.DataObject = 'ds_aifmb_buyinforeply' END IF Long cnt, row cnt = response.BuyInfoReplyList.Count oleobject lo_productcode FOR i = 0 To cnt - 1 lo_productcode = response.BuyInfoReplyList.GetItem(i) row = arg_ds.InsertRow(0) arg_ds.Object.ReplyID[row] = lo_productcode.ReplyID arg_ds.Object.BuyID[row] = lo_productcode.BuyID arg_ds.Object.EntID[row] = lo_productcode.EntID arg_ds.Object.UserID[row] = lo_productcode.UserID arg_ds.Object.ReplyTime[row] = lo_productcode.ReplyTime arg_ds.Object.MPrice[row] = lo_productcode.MPrice arg_ds.Object.NPrice[row] = lo_productcode.NPrice arg_ds.Object.Remark[row] = lo_productcode.Remark arg_ds.Object.Status[row] = lo_productcode.Status NEXT ext: Destroy ll_proxyfactory RETURN rslt end function public function string pf_getpromocode ();String ls_typecode = 'EP' DateTime ld_date ld_date = DateTime(Today(),Time(0)) Long ll_scid = 0 Long ll_status = 0 Int rslt = 1 String arg_msg UPDATE u_bsnNo_aps SET Nmbr = Nmbr + 1 WHERE scid = :ll_scid AND opdate = :ld_date AND Typecode = :ls_typecode And status = :ll_status; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = sqlca.SQLErrText GOTO ext END IF IF sqlca.SQLNRows = 0 THEN INSERT INTO u_bsnNo_aps(scid, opdate, Typecode, Nmbr, status) Values(:ll_scid, :ld_date, :ls_typecode, 1, :ll_status); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = sqlca.SQLErrText GOTO ext END IF END IF Long ll_nmbr SELECT Nmbr INTO :ll_nmbr FROM u_bsnNo_aps WHERE scid = :ll_scid AND opdate = :ld_date AND Typecode = :ls_typecode And status = :ll_status; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = sqlca.SQLErrText GOTO ext END IF ext: IF rslt = 1 THEN COMMIT; RETURN ls_typecode + String(ld_date, 'yyMMdd') + String(EntID) + String(ll_nmbr, '0000') ELSE ROLLBACK; RETURN ""; END IF end function public function string pf_getbuycode ();String ls_typecode = 'EB' DateTime ld_date ld_date = DateTime(Today(),Time(0)) Long ll_scid = 0 Long ll_status = 0 Int rslt = 1 String arg_msg UPDATE u_bsnNo_aps SET Nmbr = Nmbr + 1 WHERE scid = :ll_scid AND opdate = :ld_date AND Typecode = :ls_typecode And status = :ll_status; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = sqlca.SQLErrText GOTO ext END IF IF sqlca.SQLNRows = 0 THEN INSERT INTO u_bsnNo_aps(scid, opdate, Typecode, Nmbr, status) Values(:ll_scid, :ld_date, :ls_typecode, 1, :ll_status); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = sqlca.SQLErrText GOTO ext END IF END IF Long ll_nmbr SELECT Nmbr INTO :ll_nmbr FROM u_bsnNo_aps WHERE scid = :ll_scid AND opdate = :ld_date AND Typecode = :ls_typecode And status = :ll_status; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = sqlca.SQLErrText GOTO ext END IF ext: IF rslt = 1 THEN COMMIT; RETURN ls_typecode + String(ld_date, 'yyMMdd') + String(EntID) + String(ll_nmbr, '0000') ELSE ROLLBACK; RETURN ""; END IF end function public function integer pf_resetcominfo (ref string arg_msg);Int rslt = 1 IF sys_email_sqlca.DBHandle() <= 0 THEN rslt = 0 arg_msg = '未设置邮件数据库' GOTO ext END IF Long cnt SELECT count(0) INTO :cnt FROM LJFIEB_CusComm WHERE CusType = 0 Using sys_email_sqlca; IF sys_email_sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '获取企业初始信息失败,' + sys_email_sqlca.SQLErrText GOTO ext END IF IF cnt <= 0 THEN rslt = 0 arg_msg = '通信设置不包含本企业信息,请启用通信服务进行初始化' GOTO ext END IF IF cnt > 1 THEN rslt = 0 arg_msg = '通信设置包含多条本企业信息,数据异常' GOTO ext END IF String ls_CusID SELECT CusID INTO :ls_CusID FROM LJFIEB_CusComm WHERE CusType = 0 Using sys_email_sqlca; IF sys_email_sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询本企业唯一码失败,' + sys_email_sqlca.SQLErrText GOTO ext END IF DELETE FROM LJFIEB_ComInfo WHERE CusID <> :ls_CusID Using sys_email_sqlca; IF sys_email_sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '删除非法数据失败,' + sys_email_sqlca.SQLErrText GOTO ext END IF SELECT count(0) INTO :cnt FROM LJFIEB_ComInfo WHERE CusID = :ls_CusID Using sys_email_sqlca; IF sys_email_sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询本企业信息是否存在失败,' + sys_email_sqlca.SQLErrText GOTO ext END IF IF cnt <= 0 THEN INSERT INTO LJFIEB_ComInfo(CusID) VALUES(:ls_CusID) Using sys_email_sqlca; IF sys_email_sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '初始化本企业信息失败,' + sys_email_sqlca.SQLErrText GOTO ext END IF END IF ext: IF rslt = 1 THEN COMMIT Using sys_email_sqlca; ELSE ROLLBACK Using sys_email_sqlca; END IF RETURN rslt end function public function integer uf_tryautologin (ref string arg_msg);Int rslt = 1 Long ll_rtn = 0 String ls_logname, ls_logpsw IF IsNull(Token) Or Token = '' THEN IF pf_gettoken(arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF END IF IF pf_getlocalcominfo(arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF IF local_userid <= 0 and sys_power_issuper THEN // DONE: 注册流程 Open(w_aifmb_regcom) ll_rtn = Message.DoubleParm IF ll_rtn = 1 THEN IF pf_getlocalcominfo(arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF END IF END IF IF local_userid > 0 THEN IF UserID <= 0 THEN // DONE: 登陆流程 SELECT aifmb_logname, aifmb_logpsw INTO :ls_logname, :ls_logpsw FROM u_user WHERE scid = :sys_scid AND empid = :sys_empid Using sqlca; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询操作员绑定的用户名失败,' + sqlca.SQLErrText GOTO ext END IF IF ls_logname <> '' THEN IF uf_userlogin(ls_logname, ls_logpsw, '', arg_msg) <> 1 THEN END IF END IF END IF IF UserID <= 0 THEN Open(w_aifmb_login_response) END IF END IF ext: RETURN rslt end function public subroutine pf_reset ();EntID = 0 EntName = '' UserID = 0 LoginName = '' UserName = '' Powers = '' LoginSuccess = false auditflag = 0 tele = '' phone = '' email = '' QQ = '' // 本地企业信息 local_userid = 0 local_username = '' local_cusid = '' end subroutine public function integer uf_modentpsw (string arg_oldpsw, string arg_newpsw, ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy IF sys_email_sqlca.DBHandle() <= 0 THEN rslt = 0 arg_msg = '邮件数据库未连接' GOTO ext END IF // DONE: 修改本地密码 UPDATE LJFIEB_ComInfo SET psw = :arg_newpsw Using sys_email_sqlca; IF sys_email_sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '更新本地缓存密码失败,' + sys_email_sqlca.SQLErrText GOTO ext END IF IF sys_email_sqlca.SQLNRows <> 1 THEN rslt = 0 arg_msg = '更新表LJFIEB_ComInfo失败,需要修复' GOTO ext END IF oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewModEntPswRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF request.oldpsw = arg_oldpsw request.newpsw = arg_newpsw oleobject response response = lo_proxy.ModEntPsw(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF ext: Destroy ll_proxyfactory IF rslt = 1 THEN COMMIT; COMMIT Using sys_email_sqlca; ELSE ROLLBACK; ROLLBACK Using sys_email_sqlca; END IF RETURN rslt end function public function long sf_auditflag ();return auditflag end function public function string sf_tele ();return tele end function public function string sf_phone ();return phone end function public function string sf_email ();return email end function public function string sf_qq ();return QQ end function public function integer uf_inquire_gettome (datastore arg_ds, ref string arg_msg);Int rslt = 1 // TODO: 获取我的询价 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF IF IsNull(token) Or token = '' THEN IF pf_GetToken(arg_msg) <> 1 THEN GOTO ext END IF END IF oleobject request request = lo_proxy.NewGetInquireRequest() request.token = token request.ToEntID = String(EntID) request.isInquire = 1 oleobject response response = lo_proxy.GetInquire(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF IF Not IsValid(arg_ds) THEN arg_ds = Create datastore END IF IF arg_ds.DataObject <> 'dw_aifmb_inquire' THEN arg_ds.DataObject = 'dw_aifmb_inquire' END IF Long cnt cnt = response.imList.Count oleobject im Long i, j FOR i = 0 To cnt - 1 im = response.imList.GetItem(i) j = arg_ds.InsertRow(0) IF Not IsNull(im.InquireID) THEN arg_ds.Object.InquireID[j] = im.InquireID IF Not IsNull(im.FromEntID) THEN arg_ds.Object.FromEntID[j] = im.FromEntID IF Not IsNull(im.FromUserID) THEN arg_ds.Object.FromUserID[j] = im.FromUserID IF Not IsNull(im.ToEntID) THEN arg_ds.Object.ToEntID[j] = im.ToEntID IF Not IsNull(im.ToUserID) THEN arg_ds.Object.ToUserID[j] = im.ToUserID IF Not IsNull(im.InquireStatus) THEN arg_ds.Object.InquireStatus[j] = im.InquireStatus IF Not IsNull(im.ReadStatus1) THEN arg_ds.Object.ReadStatus1[j] = im.ReadStatus1 IF Not IsNull(im.ReadStatus2) THEN arg_ds.Object.ReadStatus2[j] = im.ReadStatus2 IF Not IsNull(im.ProductID) THEN arg_ds.Object.ProductID[j] = im.ProductID IF Not IsNull(im.Quantity) THEN arg_ds.Object.Quantity[j] = im.Quantity IF Not IsNull(im.Unit) THEN arg_ds.Object.Unit[j] = im.Unit IF Not IsNull(im.MPrice) THEN arg_ds.Object.MPrice[j] = im.MPrice IF Not IsNull(im.NPrice) THEN arg_ds.Object.NPrice[j] = im.NPrice IF Not IsNull(im.QuoteStatus) THEN arg_ds.Object.QuoteStatus[j] = im.QuoteStatus IF Not IsNull(im.QuoteUserID) THEN arg_ds.Object.QuoteUserID[j] = im.QuoteUserID IF Not IsNull(im.QuoteDate) THEN arg_ds.Object.QuoteDate[j] = im.QuoteDate IF Not IsNull(im.InquireRemark) THEN arg_ds.Object.InquireRemark[j] = im.InquireRemark IF Not IsNull(im.CreatDate) THEN arg_ds.Object.CreatDate[j] = im.CreatDate IF Not IsNull(im.DesiredPrice) THEN arg_ds.Object.DesiredPrice[j] = im.DesiredPrice IF Not IsNull(im.ToEnt) THEN arg_ds.Object.ToEnt[j] = im.ToEnt IF Not IsNull(im.ToUser) THEN arg_ds.Object.ToUser[j] = im.ToUser IF Not IsNull(im.mtrlcode) THEN arg_ds.Object.mtrlcode[j] = im.mtrlcode IF Not IsNull(im.mtrlname) THEN arg_ds.Object.mtrlname[j] = im.mtrlname IF Not IsNull(im.mtrlmode) THEN arg_ds.Object.mtrlmode[j] = im.mtrlmode IF Not IsNull(im.QuoteUser) THEN arg_ds.Object.QuoteUser[j] = im.QuoteUser IF Not IsNull(im.FromEnt) THEN arg_ds.Object.FromEnt[j] = im.FromEnt IF Not IsNull(im.FromUser) THEN arg_ds.Object.FromUser[j] = im.FromUser NEXT ext: Destroy ll_proxyfactory RETURN rslt end function public function integer uf_inquire_getfromme (datastore arg_ds, ref string arg_msg);Int rslt = 1 // DONE: 获取我的询价 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF IF IsNull(token) Or token = '' THEN IF pf_GetToken(arg_msg) <> 1 THEN GOTO ext END IF END IF oleobject request request = lo_proxy.NewGetInquireRequest() request.token = token request.FromEntID = String(EntID) request.isInquire = 0 oleobject response response = lo_proxy.GetInquire(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF IF Not IsValid(arg_ds) THEN arg_ds = Create datastore END IF IF arg_ds.DataObject <> 'dw_aifmb_inquire' THEN arg_ds.DataObject = 'dw_aifmb_inquire' END IF Long cnt cnt = response.imList.Count oleobject im Long i, j FOR i = 0 To cnt - 1 im = response.imList.GetItem(i) j = arg_ds.InsertRow(0) IF Not IsNull(im.inquireid) THEN arg_ds.Object.inquireid[j] = im.inquireid IF Not IsNull(im.FromEntID) THEN arg_ds.Object.FromEntID[j] = im.FromEntID IF Not IsNull(im.fromuserid) THEN arg_ds.Object.fromuserid[j] = im.fromuserid IF Not IsNull(im.toentid) THEN arg_ds.Object.toentid[j] = im.toentid IF Not IsNull(im.touserid) THEN arg_ds.Object.touserid[j] = im.touserid IF Not IsNull(im.inquirestatus) THEN arg_ds.Object.inquirestatus[j] = im.inquirestatus IF Not IsNull(im.readstatus1) THEN arg_ds.Object.readstatus1[j] = im.readstatus1 IF Not IsNull(im.readstatus2) THEN arg_ds.Object.readstatus2[j] = im.readstatus2 IF Not IsNull(im.ProductID) THEN arg_ds.Object.ProductID[j] = im.ProductID IF Not IsNull(im.Quantity) THEN arg_ds.Object.Quantity[j] = im.Quantity IF Not IsNull(im.Unit) THEN arg_ds.Object.Unit[j] = im.Unit IF Not IsNull(im.MPrice) THEN arg_ds.Object.MPrice[j] = im.MPrice IF Not IsNull(im.NPrice) THEN arg_ds.Object.NPrice[j] = im.NPrice IF Not IsNull(im.QuoteStatus) THEN arg_ds.Object.QuoteStatus[j] = im.QuoteStatus IF Not IsNull(im.QuoteUserID) THEN arg_ds.Object.QuoteUserID[j] = im.QuoteUserID IF Not IsNull(im.QuoteDate) THEN arg_ds.Object.QuoteDate[j] = im.QuoteDate IF Not IsNull(im.InquireRemark) THEN arg_ds.Object.InquireRemark[j] = im.InquireRemark IF Not IsNull(im.CreatDate) THEN arg_ds.Object.CreatDate[j] = im.CreatDate IF Not IsNull(im.DesiredPrice) THEN arg_ds.Object.DesiredPrice[j] = im.DesiredPrice IF Not IsNull(im.ToEnt) THEN arg_ds.Object.ToEnt[j] = im.ToEnt IF Not IsNull(im.ToUser) THEN arg_ds.Object.ToUser[j] = im.ToUser IF Not IsNull(im.mtrlcode) THEN arg_ds.Object.mtrlcode[j] = im.mtrlcode IF Not IsNull(im.mtrlname) THEN arg_ds.Object.mtrlname[j] = im.mtrlname IF Not IsNull(im.mtrlmode) THEN arg_ds.Object.mtrlmode[j] = im.mtrlmode IF Not IsNull(im.QuoteUser) THEN arg_ds.Object.QuoteUser[j] = im.QuoteUser IF Not IsNull(im.FromEnt) THEN arg_ds.Object.FromEnt[j] = im.FromEnt IF Not IsNull(im.FromUser) THEN arg_ds.Object.FromUser[j] = im.FromUser NEXT ext: Destroy ll_proxyfactory RETURN rslt end function public function integer uf_inquire_add (ref s_aifmb_inquire_add s_tran, ref string arg_msg);int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF IF IsNull(token) Or token = '' THEN IF pf_GetToken(arg_msg) <> 1 THEN GOTO ext END IF END IF oleobject request request = lo_proxy.NewSetInquireRequest() request.token = token request.ToEntID = s_tran.toentid request.ProductID = s_tran.productid request.Unit = s_tran.unit request.Quantity = s_tran.quantity request.MPrice = s_tran.mprice request.NPrice = s_tran.nprice request.InquireRemark = s_tran.inquireremark request.DesiredPrice = s_tran.desiredprice oleobject response response = lo_proxy.SetInquire(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF ext: Destroy ll_proxyfactory return rslt end function public function integer uf_inquire_rsp (ref s_aifmb_inquire_add s_tran, ref string arg_msg);int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF IF IsNull(token) Or token = '' THEN IF pf_GetToken(arg_msg) <> 1 THEN GOTO ext END IF END IF oleobject request request = lo_proxy.NewSetInquireRequest() request.token = token request.InquireID = s_tran.InquireID request.MPrice = s_tran.mprice request.NPrice = s_tran.nprice oleobject response response = lo_proxy.SetInquire(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF ext: Destroy ll_proxyfactory return rslt end function public function integer uf_inquire_cfm (ref s_aifmb_inquire_add s_tran, ref string arg_msg);int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF IF IsNull(token) Or token = '' THEN IF pf_GetToken(arg_msg) <> 1 THEN GOTO ext END IF END IF oleobject request request = lo_proxy.NewSetInquireRequest() request.token = token request.InquireID = s_tran.InquireID oleobject response response = lo_proxy.SetInquire(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF ext: Destroy ll_proxyfactory return rslt end function public function integer uf_setentlinkstatus (integer arg_receivemsg, ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF IsNull(token) Or token = '' THEN IF pf_GetToken(arg_msg) <> 1 THEN GOTO ext END IF END IF IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewSetEntLinkStatusRequest() request.token = token oleobject EntLinkStatus EntLinkStatus = lo_proxy.NewEntLinkStatus() EntLinkStatus.EntID = EntID EntLinkStatus.SoftType = sys_project + 1 EntLinkStatus.LinkType = 1 EntLinkStatus.ReceiveMsg = (arg_receivemsg = 1) request.EntLinkStatusData = EntLinkStatus oleobject response response = lo_proxy.SetEntLinkStatus(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF ext: Destroy ll_proxyfactory RETURN rslt end function public function integer uf_getlinkedentlist (datastore arg_ds, long arg_pageindex, long arg_pagesize, ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewGetLinkedEntListRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF request.PageIndex = arg_pageindex request.PageSize = arg_pagesize oleobject response response = lo_proxy.GetLinkedEntList(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF IF Not IsValid(arg_ds) THEN arg_ds = Create datastore END IF // DONE: 修改DATASource IF arg_ds.DataObject <> 'dw_aifmb_querycom2' THEN arg_ds.DataObject = 'dw_aifmb_querycom2' END IF Long cnt cnt = response.returnList.Count Long i Long row oleobject lo_item FOR i = 0 To cnt - 1 lo_item = response.returnList.GetItem(i) row = arg_ds.InsertRow(0) arg_ds.Object.UserID[row] = lo_item.UserID arg_ds.Object.CusID[row] = lo_item.CusID arg_ds.Object.usercode[row] = lo_item.usercode arg_ds.Object.username[row] = lo_item.username arg_ds.Object.regtime[row] = lo_item.regtime arg_ds.Object.tele[row] = lo_item.tele arg_ds.Object.phone[row] = lo_item.phone arg_ds.Object.Address[row] = lo_item.Address arg_ds.Object.email[row] = lo_item.email arg_ds.Object.dscrp[row] = lo_item.dscrp arg_ds.Object.comcode[row] = lo_item.comcode arg_ds.Object.auditflag[row] = lo_item.auditflag arg_ds.Object.auditemp[row] = lo_item.auditemp arg_ds.Object.auditdate[row] = lo_item.auditdate arg_ds.Object.UserType[row] = lo_item.UserType arg_ds.Object.inuse[row] = lo_item.inuse arg_ds.Object.Introduction[row] = lo_item.Introduction arg_ds.Object.IsAsia[row] = lo_item.IsAsia arg_ds.Object.AsiaCode[row] = lo_item.AsiaCode arg_ds.Object.SoftType[row] = lo_item.SoftType arg_ds.Object.LinkType[row] = lo_item.LinkType arg_ds.Object.ReceiveMsg[row] = lo_item.ReceiveMsg NEXT ext: Destroy ll_proxyfactory IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function public function integer uf_setentlinkmsg (long arg_receiveentids[], string arg_msgcontent, string arg_linkstring, ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewSetEntLinkMsgRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF string ls_ents = '' long i for i = 1 to upperbound(arg_receiveentids) if ls_ents <> '' then ls_ents += ',' ls_ents += string(arg_receiveentids[i]) next request.ReceiveEntIDs = ls_ents oleobject lo_msg lo_msg = lo_proxy.NewEntLinkMsg() lo_msg.MsgContent = arg_msgcontent lo_msg.LinkString = arg_linkstring request.entlinkmsgInfo = lo_msg oleobject response response = lo_proxy.SetBuyInfo(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF ext: Destroy ll_proxyfactory RETURN rslt end function public function integer uf_getentlinkmsglist (ref datastore arg_ds, boolean arg_receive, boolean arg_send, boolean arg_isdeal, long arg_pageindex, long arg_pagesize, ref string arg_msg);Int rslt = 1 uo_aifmbproxy ll_proxyfactory ll_proxyfactory = Create uo_aifmbproxy oleobject lo_proxy IF ll_proxyfactory.getproxy(lo_proxy, arg_msg) <> 1 THEN rslt = 0 GOTO ext END IF oleobject request request = lo_proxy.NewGetEntLinkMsgListRequest() IF Not IsNull(Token) And Token <> '' THEN request.Token = Token END IF request.Receive = arg_receive request.Send = arg_send request.isDeal = arg_isdeal request.PageIndex = arg_pageindex request.PageSize = arg_pagesize oleobject response response = lo_proxy.GetEntLinkMsgList(request) IF Not IsNull(response.ErrMsg) THEN rslt = 0 arg_msg = response.ErrMsg GOTO ext END IF IF Not IsValid(arg_ds) THEN arg_ds = Create datastore END IF IF arg_ds.DataObject <> 'w_aifmb_addcuscomm_request2' THEN arg_ds.DataObject = 'w_aifmb_addcuscomm_request2' END IF Long cnt, row,i cnt = response.EntLinkMsgList.Count oleobject lo_productcode FOR i = 0 To cnt - 1 lo_productcode = response.EntLinkMsgList.GetItem(i) row = arg_ds.InsertRow(0) arg_ds.Object.MsgID[row] = lo_productcode.MsgID arg_ds.Object.ReceiveEntID[row] = lo_productcode.ReceiveEntID arg_ds.Object.SendEntID[row] = lo_productcode.SendEntID arg_ds.Object.SendUserID[row] = lo_productcode.SendUserID arg_ds.Object.DealUserID[row] = lo_productcode.DealUserID arg_ds.Object.MsgContent[row] = lo_productcode.MsgContent arg_ds.Object.LinkString[row] = lo_productcode.LinkString arg_ds.Object.DealDate[row] = lo_productcode.DealDate arg_ds.Object.SendDate[row] = lo_productcode.SendDate arg_ds.Object.DealFlag[row] = lo_productcode.DealFlag NEXT ext: Destroy ll_proxyfactory IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function on uo_aifmb.create call super::create TriggerEvent( this, "constructor" ) end on on uo_aifmb.destroy TriggerEvent( this, "destructor" ) call super::destroy end on