$PBExportHeader$uo_cust.sru forward global type uo_cust from nonvisualobject end type end forward global type uo_cust from nonvisualobject end type global uo_cust uo_cust type variables Long uo_cusid end variables forward prototypes public function integer uof_add_plan (s_cust_plan arg_s_cust_plan, string arg_opemp, ref string arg_msg, boolean arg_ifcommit) public function integer uof_add_cust (s_custom arg_s_cust, string arg_opemp, ref string arg_msg, boolean arg_ifcommit) public function integer uof_del_interview (long arg_interviewid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit) public function integer uof_del_plan (long arg_planid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit) public function integer uof_del_rep (long arg_repid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit) public function integer uof_add_rep (s_cust_rep arg_s_cust_rep, string arg_opemp, ref string arg_msg, boolean arg_ifcommit) public function integer uof_del_cust (long arg_cusid, ref string arg_msg, boolean arg_ifcommit) public function integer uof_change_state (long arg_cusid, integer arg_state, ref string arg_msg, boolean arg_ifcommit) public function integer uof_del_station (long arg_cusid, long arg_stationid, ref string arg_msg, boolean arg_ifcommit) public function integer uof_add_station (s_cust_station arg_s_cust_station, ref string arg_msg, boolean arg_ifcommit) public function integer uof_set_dft_station (s_cust_station arg_s_cust_station, ref string arg_msg, boolean arg_ifcommit) public function integer uof_add_item (s_item_cust_spt arg_s_item, ref string arg_msg, boolean arg_ifcommit) public function integer uof_add_sample (s_cust_sample arg_s_cust_sample, string arg_opemp, ref string arg_msg, boolean arg_ifcommit) public function integer uof_del_sample (long arg_sampleid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit) public function integer uof_code_find (long arg_id, string arg_code, ref string arg_msg) public function integer uof_del_giveback_rule (long arg_ruleid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit) public function integer uof_add_giveback_rule (s_cust_giveback_rule arg_s_rule, string arg_opemp, ref string arg_msg, boolean arg_ifcommit) public function integer uof_cust_score (long arg_cusid, decimal arg_score, ref string arg_msg, boolean arg_ifcommit) public function integer uof_update_member (long arg_cusid, ref string arg_msg, boolean arg_ifcommit) public function integer uof_audit (long arg_cusid, string arg_emp, ref string arg_msg, boolean arg_ifcommit) public function integer uof_secaudit (long arg_cusid, string arg_emp, ref string arg_msg, boolean arg_ifcommit) public function integer uof_c_secaudit (long arg_cusid, ref string arg_msg, boolean arg_ifcommit) public function integer uof_c_audit (long arg_cusid, ref string arg_msg, boolean arg_ifcommit) public function integer uof_update_pricelist (long arg_cusid, string arg_opemp, long arg_pricelistid, string arg_grade, decimal arg_rebate, long arg_exchangeid, string arg_pricedscrp, ref string arg_msg, boolean arg_ifcommit) public function integer uof_add_interview (ref s_cust_interview arg_s_cust_interview, string arg_opemp, ref string arg_msg, boolean arg_ifcommit) end prototypes public function integer uof_add_plan (s_cust_plan arg_s_cust_plan, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 Long cnt,ll_planid long ll_empid string ls_cusname,ls_topic IF IsNull(arg_s_cust_plan.saler) THEN arg_s_cust_plan.saler = '' IF IsNull(arg_s_cust_plan.planrep) THEN arg_s_cust_plan.planrep = '' IF IsNull(arg_s_cust_plan.plancontent) THEN arg_s_cust_plan.plancontent = '' IF IsNull(arg_s_cust_plan.dscrp) THEN arg_s_cust_plan.dscrp = '' IF IsNull(arg_s_cust_plan.cusid) THEN arg_s_cust_plan.cusid = 0 IF IsNull(arg_s_cust_plan.planid) THEN arg_s_cust_plan.planid = 0 IF IsNull(arg_s_cust_plan.perdaynum) THEN arg_s_cust_plan.perdaynum = 0 IF arg_s_cust_plan.saler = '' THEN arg_msg = '请输入业务员' rslt = 0 GOTO ext END IF IF arg_s_cust_plan.plancontent = '' THEN arg_msg = '请输入计划内容' rslt = 0 GOTO ext END IF select empid into :ll_empid from u_rs_empinfo where empname = :arg_s_cust_plan.saler; if sqlca.sqlcode <> 0 then ll_empid = 0 SELECT name INTO :ls_cusname FROM u_cust Where cusid = :arg_s_cust_plan.cusid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询客户资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF ls_topic = '走访 '+ls_cusname IF arg_s_cust_plan.planid = 0 THEN ll_planid = f_sys_scidentity(0,"oa_emp_workplan","planid",arg_msg,TRUE,id_sqlca) IF ll_planid <= 0 THEN rslt = 0 GOTO ext END IF INSERT INTO oa_emp_workplan (planid, relid, empname, stime, etime, relrep, content, dscrp, opdate, opemp, kind, empid, topic, perdaynum) VALUES(:ll_planid, :arg_s_cust_plan.cusid, :arg_s_cust_plan.saler, :arg_s_cust_plan.plandate, :arg_s_cust_plan.plandate, :arg_s_cust_plan.planrep, :arg_s_cust_plan.plancontent, :arg_s_cust_plan.dscrp, getdate(), :arg_opemp, 1, :ll_empid, :ls_topic, :arg_s_cust_plan.perdaynum); IF sqlca.SQLCode <> 0 THEN arg_msg = '建立客户计划失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF ELSE UPDATE oa_emp_workplan SET empname = :arg_s_cust_plan.saler, stime = :arg_s_cust_plan.plandate, etime = :arg_s_cust_plan.plandate, relrep = :arg_s_cust_plan.planrep, content = :arg_s_cust_plan.plancontent, dscrp = :arg_s_cust_plan.dscrp, moddate = getdate(), modemp = :arg_opemp, empid = :ll_empid, topic = :ls_topic, perdaynum = :arg_s_cust_plan.perdaynum Where planid = :arg_s_cust_plan.planid and kind = 1; IF sqlca.SQLCode <> 0 THEN arg_msg = '更新客户计划失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF RETURN rslt end function public function integer uof_add_cust (s_custom arg_s_cust, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 Long cnt,ll_cusid,ll_i,ll_repid String ls_cusareaname,ls_areaname IF IsNull(arg_s_cust.cusid) THEN arg_s_cust.cusid = 0 IF IsNull(arg_s_cust.cuscode) THEN arg_s_cust.cuscode = '' IF IsNull(arg_s_cust.Name) THEN arg_s_cust.Name = '' IF IsNull(arg_s_cust.bsntype) THEN arg_s_cust.bsntype = '' IF IsNull(arg_s_cust.rep) THEN arg_s_cust.rep = '' IF IsNull(arg_s_cust.tele) THEN arg_s_cust.tele = '' IF IsNull(arg_s_cust.tele1) THEN arg_s_cust.tele1 = '' IF IsNull(arg_s_cust.bank) THEN arg_s_cust.bank = '' IF IsNull(arg_s_cust.cunt) THEN arg_s_cust.cunt = '' IF IsNull(arg_s_cust.Address) THEN arg_s_cust.Address = '' IF IsNull(arg_s_cust.code) THEN arg_s_cust.code = '' IF IsNull(arg_s_cust.dscrp) THEN arg_s_cust.dscrp = '' IF IsNull(arg_s_cust.givebackrate) THEN arg_s_cust.givebackrate = 0 IF IsNull(arg_s_cust.freight) THEN arg_s_cust.freight = '' IF IsNull(arg_s_cust.freight_tele) THEN arg_s_cust.freight_tele = '' IF IsNull(arg_s_cust.fax) THEN arg_s_cust.fax = '' IF IsNull(arg_s_cust.upname) THEN arg_s_cust.upname = '' IF IsNull(arg_s_cust.inuse) THEN arg_s_cust.inuse = 0 IF IsNull(arg_s_cust.cusareaid) THEN arg_s_cust.cusareaid = 0 IF IsNull(arg_s_cust.areaname) THEN arg_s_cust.areaname = '' IF IsNull(arg_s_cust.cusareaname) THEN arg_s_cust.cusareaname = '' IF IsNull(arg_s_cust.email) THEN arg_s_cust.email = '' IF IsNull(arg_s_cust.State) THEN arg_s_cust.State = 0 IF IsNull(arg_s_cust.peoplenum) THEN arg_s_cust.peoplenum = 0 IF IsNull(arg_s_cust.mainmarket) THEN arg_s_cust.mainmarket = '' IF IsNull(arg_s_cust.saleamt) THEN arg_s_cust.saleamt = 0 IF IsNull(arg_s_cust.nethttp) THEN arg_s_cust.nethttp = '' IF IsNull(arg_s_cust.trade) THEN arg_s_cust.trade = '' IF IsNull(arg_s_cust.corporation) THEN arg_s_cust.corporation = '' IF IsNull(arg_s_cust.grade) THEN arg_s_cust.grade = '' IF IsNull(arg_s_cust.ifself) THEN arg_s_cust.ifself = 0 IF IsNull(arg_s_cust.cuskind) THEN arg_s_cust.cuskind = '' IF IsNull(arg_s_cust.simplename) THEN arg_s_cust.simplename = '' IF IsNull(arg_s_cust.viewdaynum) THEN arg_s_cust.viewdaynum = 0 IF IsNull(arg_s_cust.tele_sms) THEN arg_s_cust.tele_sms = '' IF IsNull(arg_s_cust.styleid) THEN arg_s_cust.styleid = 0 IF IsNull(arg_s_cust.banktypeid) THEN arg_s_cust.banktypeid = 0 IF IsNull(arg_s_cust.moneyid) THEN arg_s_cust.moneyid = 0 IF IsNull(arg_s_cust.transday) THEN arg_s_cust.transday = 0 IF IsNull(arg_s_cust.memberid) THEN arg_s_cust.memberid = 0 IF IsNull(arg_s_cust.score) THEN arg_s_cust.score = 0 IF IsNull(arg_s_cust.lsflag) THEN arg_s_cust.lsflag = 0 IF IsNull(arg_s_cust.ljmail) THEN arg_s_cust.ljmail = '' IF IsNull(arg_s_cust.pricelistid) THEN arg_s_cust.pricelistid = 0 IF IsNull(arg_s_cust.rebate) THEN arg_s_cust.rebate = 1 IF IsNull(arg_s_cust.qqcode) THEN arg_s_cust.qqcode = '' IF IsNull(arg_s_cust.frcode) THEN arg_s_cust.frcode = '' IF IsNull(arg_s_cust.aifmb_flag) THEN arg_s_cust.aifmb_flag = 0 IF IsNull(arg_s_cust.selecttype) THEN arg_s_cust.selecttype = -1 IF IsNull(arg_s_cust.stat_rep) THEN arg_s_cust.stat_rep = '' IF IsNull(arg_s_cust.stat_handtel) THEN arg_s_cust.stat_handtel = '' IF IsNull(arg_s_cust.stat_address) THEN arg_s_cust.stat_address = '' IF IsNull(arg_s_cust.province) THEN arg_s_cust.province = '' IF IsNull(arg_s_cust.city) THEN arg_s_cust.city = '' IF IsNull(arg_s_cust.area) THEN arg_s_cust.area = '' //2014-08-14 还原,取消该字段 arg_s_cust.selecttype = -1 // IF arg_s_cust.cuscode = '' THEN arg_msg = '请输入客户编号!' rslt = 0 GOTO ext END IF IF arg_s_cust.Name = '' THEN arg_msg = '请输入客户名称!' rslt = 0 GOTO ext END IF cnt = 0 SELECT count(*) INTO :cnt FROM u_cust WHERE name = :arg_s_cust.Name AND cusid <> :arg_s_cust.cusid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询客户名称是否重复失败' rslt = 0 GOTO ext END IF IF cnt > 0 THEN arg_msg = '客户名称重复,请检查客户资料' rslt = 0 GOTO ext END IF cnt = 0 SELECT count(*) INTO :cnt FROM u_Cusarea Where cusareaid = :arg_s_cust.cusareaid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询客户区域资料是否重复失败' rslt = 0 GOTO ext END IF IF cnt <> 1 THEN arg_msg = '客户区域资料重复或不存在,请检查客户区域资料' rslt = 0 GOTO ext END IF IF arg_s_cust.bsntype = '' THEN arg_msg = '请选择业务员' rslt = 0 GOTO ext END IF IF arg_s_cust.viewdaynum < 0 THEN arg_msg = '不合理的预收款天数' rslt = 0 GOTO ext END IF if arg_s_cust.transday < 0 then arg_msg = '不合理的标准运输时间' rslt = 0 GOTO ext END IF SELECT cusareaname,areaname INTO :ls_cusareaname,:ls_areaname FROM u_cusarea Where cusareaid = :arg_s_cust.cusareaid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询客户区域资料是否重复失败' rslt = 0 GOTO ext END IF IF arg_s_cust.inuse = 0 AND arg_s_cust.cusid > 0 THEN IF f_check_cust_balcamt(arg_s_cust.cusid,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF END IF //只能设一个零售客户 if arg_s_cust.lsflag = 1 then update u_cust set lsflag = 0 where cusid <> :arg_s_cust.cusid; IF sqlca.SQLCode <> 0 THEN arg_msg = '更新客户资料零售标记失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF end if IF arg_s_cust.cusid = 0 THEN ll_cusid = f_sys_scidentity(0,"u_cust","cusid",arg_msg,TRUE,id_sqlca) IF ll_cusid <= 0 THEN rslt = 0 GOTO ext END IF INSERT INTO u_cust (cusid, cuscode, name, custype, rep, tele, tele1, bank, cunt, address, code, dscrp, faxno, inuse, cusareaid, cusareaname, areaname, email, givebackrate, freight, freight_tele, upname, state, peoplenum, mainmarket, saleamt, nethttp, trade, corporation, grade, ifself, opdate, opemp, cuskind, simplename, viewdaynum, tele_sms, styleid, banktypeid, moneyid, transday, memberid, score, lsflag, ljmail, pricelistid, qqcode, frcode, aifmb_flag, rebate, selecttype, stat_rep, stat_handtel, stat_address, province, city, area) VALUES(:ll_cusid, :arg_s_cust.cuscode, :arg_s_cust.name, :arg_s_cust.bsntype, :arg_s_cust.rep, :arg_s_cust.tele, :arg_s_cust.tele1, :arg_s_cust.bank, :arg_s_cust.cunt, :arg_s_cust.address, :arg_s_cust.code, :arg_s_cust.dscrp, :arg_s_cust.fax, :arg_s_cust.inuse, :arg_s_cust.cusareaid, :ls_cusareaname, :ls_areaname, :arg_s_cust.email, :arg_s_cust.givebackrate, :arg_s_cust.freight, :arg_s_cust.freight_tele, :arg_s_cust.upname, :arg_s_cust.state, :arg_s_cust.peoplenum, :arg_s_cust.mainmarket, :arg_s_cust.saleamt, :arg_s_cust.nethttp, :arg_s_cust.trade, :arg_s_cust.corporation, :arg_s_cust.grade, :arg_s_cust.ifself, getdate(), :arg_opemp, :arg_s_cust.cuskind, :arg_s_cust.simplename, :arg_s_cust.viewdaynum, :arg_s_cust.tele_sms, :arg_s_cust.styleid, :arg_s_cust.banktypeid, :arg_s_cust.moneyid, :arg_s_cust.transday, :arg_s_cust.memberid, :arg_s_cust.score, :arg_s_cust.lsflag, :arg_s_cust.ljmail, :arg_s_cust.pricelistid, :arg_s_cust.qqcode, :arg_s_cust.frcode, :arg_s_cust.aifmb_flag, :arg_s_cust.rebate, :arg_s_cust.selecttype, :arg_s_cust.stat_rep, :arg_s_cust.stat_handtel, :arg_s_cust.stat_address, :arg_s_cust.province, :arg_s_cust.city, :arg_s_cust.area); IF sqlca.SQLCode <> 0 THEN arg_msg = '建立客户资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF uo_cusid = ll_cusid ELSE UPDATE u_cust SET cuscode = :arg_s_cust.cuscode, name = :arg_s_cust.name, custype = :arg_s_cust.bsntype, rep = :arg_s_cust.rep, tele = :arg_s_cust.tele, tele1 = :arg_s_cust.tele1, bank = :arg_s_cust.bank, cunt = :arg_s_cust.cunt, address = :arg_s_cust.address, code = :arg_s_cust.code, dscrp = :arg_s_cust.dscrp, faxno = :arg_s_cust.fax, inuse = :arg_s_cust.inuse, cusareaid = :arg_s_cust.cusareaid, cusareaname = :ls_cusareaname, areaname = :ls_areaname, email = :arg_s_cust.email, givebackrate = :arg_s_cust.givebackrate, freight = :arg_s_cust.freight, freight_tele = :arg_s_cust.freight_tele, upname = :arg_s_cust.upname, state = :arg_s_cust.state, peoplenum = :arg_s_cust.peoplenum, mainmarket = :arg_s_cust.mainmarket, saleamt = :arg_s_cust.saleamt, nethttp = :arg_s_cust.nethttp, trade = :arg_s_cust.trade, corporation = :arg_s_cust.corporation, grade = :arg_s_cust.grade, ifself = :arg_s_cust.ifself, moddate = getdate(), modemp = :arg_opemp, cuskind = :arg_s_cust.cuskind, simplename = :arg_s_cust.simplename, viewdaynum = :arg_s_cust.viewdaynum, tele_sms = :arg_s_cust.tele_sms, styleid = :arg_s_cust.styleid, banktypeid = :arg_s_cust.banktypeid, moneyid = :arg_s_cust.moneyid, transday = :arg_s_cust.transday, memberid = :arg_s_cust.memberid, score = :arg_s_cust.score, lsflag = :arg_s_cust.lsflag, ljmail = :arg_s_cust.ljmail, pricelistid = :arg_s_cust.pricelistid, qqcode = :arg_s_cust.qqcode, frcode = :arg_s_cust.frcode, aifmb_flag = :arg_s_cust.aifmb_flag, rebate = :arg_s_cust.rebate, selecttype = :arg_s_cust.selecttype, stat_rep = :arg_s_cust.stat_rep, stat_handtel = :arg_s_cust.stat_handtel, stat_address = :arg_s_cust.stat_address, province = :arg_s_cust.province, city = :arg_s_cust.city, area = :arg_s_cust.area Where cusid = :arg_s_cust.cusid; IF sqlca.SQLCode <> 0 THEN arg_msg = '更新客户资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF uo_cusid = arg_s_cust.cusid END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF RETURN rslt end function public function integer uof_del_interview (long arg_interviewid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 String ls_opemp SELECT opemp INTO :ls_opemp FROM u_cust_interview Where interviewid = :arg_interviewid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询客户走访资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF NOT sys_power_issuper AND arg_opemp <> ls_opemp THEN arg_msg = '不是资料建立人或系统管理员,不能删除' rslt = 0 GOTO ext END IF DELETE FROM u_cust_interview Where interviewid = :arg_interviewid; IF sqlca.SQLCode <> 0 THEN arg_msg = '删除客户走访资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF RETURN rslt end function public function integer uof_del_plan (long arg_planid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 String ls_opemp SELECT opemp INTO :ls_opemp FROM oa_emp_workplan Where planid = :arg_planid and kind = 1; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询客户工作计划失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF NOT sys_power_issuper AND arg_opemp <> ls_opemp THEN arg_msg = '不是资料建立人或系统管理员,不能删除' rslt = 0 GOTO ext END IF DELETE FROM oa_emp_workplan Where planid = :arg_planid and kind = 1; IF sqlca.SQLCode <> 0 THEN arg_msg = '删除客户工作计划失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF RETURN rslt end function public function integer uof_del_rep (long arg_repid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 String ls_opemp SELECT opemp INTO :ls_opemp FROM u_cust_rep Where repid = :arg_repid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询客户联系人资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF NOT sys_power_issuper AND arg_opemp <> ls_opemp THEN arg_msg = '不是资料建立人或系统管理员,不能删除' rslt = 0 GOTO ext END IF DELETE FROM u_cust_rep Where repid = :arg_repid; IF sqlca.SQLCode <> 0 THEN arg_msg = '删除客户联系人失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF RETURN rslt end function public function integer uof_add_rep (s_cust_rep arg_s_cust_rep, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 Long cnt,ll_repid IF IsNull(arg_s_cust_rep.repname) THEN arg_s_cust_rep.repname = '' IF IsNull(arg_s_cust_rep.duty) THEN arg_s_cust_rep.duty = '' IF IsNull(arg_s_cust_rep.sex) THEN arg_s_cust_rep.sex = '' IF IsNull(arg_s_cust_rep.officetel) THEN arg_s_cust_rep.officetel = '' IF IsNull(arg_s_cust_rep.handtel) THEN arg_s_cust_rep.handtel = '' IF IsNull(arg_s_cust_rep.faxno) THEN arg_s_cust_rep.faxno = '' IF IsNull(arg_s_cust_rep.email) THEN arg_s_cust_rep.email = '' IF IsNull(arg_s_cust_rep.dscrp) THEN arg_s_cust_rep.dscrp = '' IF IsNull(arg_s_cust_rep.deptname) THEN arg_s_cust_rep.deptname = '' IF IsNull(arg_s_cust_rep.interest) THEN arg_s_cust_rep.interest = '' IF IsNull(arg_s_cust_rep.mainproduct) THEN arg_s_cust_rep.mainproduct = '' IF IsNull(arg_s_cust_rep.qqcode) THEN arg_s_cust_rep.qqcode = '' IF IsNull(arg_s_cust_rep.msncode) THEN arg_s_cust_rep.msncode = '' IF IsNull(arg_s_cust_rep.address) THEN arg_s_cust_rep.address = '' IF IsNull(arg_s_cust_rep.ljmail) THEN arg_s_cust_rep.ljmail = '' IF arg_s_cust_rep.repname = '' THEN arg_msg = '请输入联系人名称' rslt = 0 GOTO ext END IF SELECT count(*) INTO :cnt FROM u_cust Where cusid = :arg_s_cust_rep.cusid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询客户资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF cnt = 0 THEN arg_msg = '客户资料不存在或重复' rslt = 0 GOTO ext END IF IF arg_s_cust_rep.repid = 0 THEN ll_repid = f_sys_scidentity(0,"u_cust_rep","repid",arg_msg,TRUE,id_sqlca) IF ll_repid <= 0 THEN rslt = 0 GOTO ext END IF INSERT INTO u_cust_rep (repid, cusid, repname, duty, sex, officetel, handtel, faxno, email, dscrp, deptname, interest, mainproduct, qqcode, msncode, opdate, opemp, address, ljmail) VALUES(:ll_repid, :arg_s_cust_rep.cusid, :arg_s_cust_rep.repname, :arg_s_cust_rep.duty, :arg_s_cust_rep.sex, :arg_s_cust_rep.officetel, :arg_s_cust_rep.handtel, :arg_s_cust_rep.faxno, :arg_s_cust_rep.email, :arg_s_cust_rep.dscrp, :arg_s_cust_rep.deptname, :arg_s_cust_rep.interest, :arg_s_cust_rep.qqcode, :arg_s_cust_rep.mainproduct, :arg_s_cust_rep.msncode, getdate(), :arg_opemp, :arg_s_cust_rep.address, :arg_s_cust_rep.ljmail); IF sqlca.SQLCode <> 0 THEN arg_msg = '建立客户联系人失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF ELSE UPDATE u_cust_rep SET repname = :arg_s_cust_rep.repname, duty = :arg_s_cust_rep.duty, sex = :arg_s_cust_rep.sex, officetel = :arg_s_cust_rep.officetel, handtel = :arg_s_cust_rep.handtel, faxno = :arg_s_cust_rep.faxno, email = :arg_s_cust_rep.email, dscrp = :arg_s_cust_rep.dscrp, deptname = :arg_s_cust_rep.deptname, interest = :arg_s_cust_rep.interest, mainproduct = :arg_s_cust_rep.mainproduct, qqcode = :arg_s_cust_rep.qqcode, msncode = :arg_s_cust_rep.msncode, moddate = getdate(), modemp = :arg_opemp, address = :arg_s_cust_rep.address, ljmail = :arg_s_cust_rep.ljmail Where repid = :arg_s_cust_rep.repid; IF sqlca.SQLCode <> 0 THEN arg_msg = '更新客户联系人失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF RETURN rslt end function public function integer uof_del_cust (long arg_cusid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 Long cnt SELECT count(*) INTO :cnt FROM u_cust Where cusid = :arg_cusid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询客户资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF cnt = 0 SELECT count(*) INTO :cnt FROM u_cust_interview Where cusid = :arg_cusid ; IF sqlca.SQLCode <> 0 THEN arg_msg = "数据查询操作失败!(请重试!)" rslt = 0 GOTO ext END IF IF cnt > 0 THEN arg_msg = "该资料已经使用于客户走访计划,不可以删除!" rslt = 0 GOTO ext END IF cnt = 0 SELECT count(*) INTO :cnt FROM u_cust_plan Where cusid = :arg_cusid ; IF sqlca.SQLCode <> 0 THEN arg_msg = "数据查询操作失败!(请重试!)" rslt = 0 GOTO ext END IF IF cnt > 0 THEN arg_msg = "该资料已经使用于客户工作计划,不可以删除!" rslt = 0 GOTO ext END IF cnt = 0 SELECT count(*) INTO :cnt FROM u_saletask Where cusid = :arg_cusid ; IF sqlca.SQLCode <> 0 THEN arg_msg = "数据查询操作失败!(请重试!)" rslt = 0 GOTO ext END IF IF cnt > 0 THEN arg_msg = "该资料已经使用于订货单记录,不可以删除!" rslt = 0 GOTO ext END IF cnt = 0 SELECT COUNT(*) INTO :cnt FROM u_outware WHERE u_outware.cusid = :arg_cusid AND billtype = 1; IF sqlca.SQLCode <> 0 THEN arg_msg = "数据查询操作失败!(请重试!)" rslt = 0 GOTO ext END IF IF cnt > 0 THEN arg_msg = "该资料已经使用于出仓记录,不可以删除!" rslt = 0 GOTO ext END IF cnt = 0 SELECT COUNT(*) INTO :cnt FROM u_cusamt WHERE cusid = :arg_cusid AND billtype = 0; IF sqlca.SQLCode <> 0 THEN arg_msg = "数据查询操作失败!(请重试!)" rslt = 0 GOTO ext END IF IF cnt > 0 THEN arg_msg = "该资料已经使用于客户收款单,不可以删除!" rslt = 0 GOTO ext END IF cnt = 0 SELECT COUNT(*) INTO :cnt FROM u_bmsttake Where cusid = :arg_cusid ; IF sqlca.SQLCode <> 0 THEN arg_msg = "数据查询操作失败!(请重试!)" rslt = 0 GOTO ext END IF IF cnt > 0 THEN arg_msg = "该资料已经使用于应收帐,不可以删除!" rslt = 0 GOTO ext END IF IF f_check_cust_balcamt(arg_cusid,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF DELETE FROM u_cust_rep Where cusid = :arg_cusid; IF sqlca.SQLCode <> 0 THEN arg_msg = '删除客户联系人失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF DELETE FROM u_cust_station Where cusid = :arg_cusid; IF sqlca.SQLCode <> 0 THEN arg_msg = '删除客户货运部失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF DELETE FROM u_item_cust_spt WHERE relid = :arg_cusid AND reltype = 0; IF sqlca.SQLCode <> 0 THEN arg_msg = '删除客户辅助项目失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF DELETE FROM u_cust Where cusid = :arg_cusid; IF sqlca.SQLCode <> 0 THEN arg_msg = '删除客户资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF RETURN rslt end function public function integer uof_change_state (long arg_cusid, integer arg_state, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1,li_state DateTime ldt_null SetNull(ldt_null) SELECT state INTO :li_state FROM u_cust Where cusid = :arg_cusid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询客户资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF arg_state = 1 THEN IF li_state = 1 THEN arg_msg = '客户资料已成为正式客户资料,不能再操作' rslt = 0 GOTO ext END IF UPDATE u_cust SET state = 1, auditemp = :publ_operator, auditdate = getdate() WHERE cusid = :arg_cusid And State <> 1; IF sqlca.SQLCode <> 0 THEN arg_msg = '更新客户资料类型失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF ELSEIF arg_state = 0 THEN IF li_state = 0 THEN arg_msg = '客户资料已成为非正式客户资料,不能再操作' rslt = 0 GOTO ext END IF UPDATE u_cust SET state = 0, auditemp = '', auditdate = :ldt_null WHERE cusid = :arg_cusid And State <> 0; IF sqlca.SQLCode <> 0 THEN arg_msg = '更新客户资料类型失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF ELSEIF arg_state = 2 THEN IF li_state = 2 THEN arg_msg = '客户资料成为黑名单客户资料,不能再操作' rslt = 0 GOTO ext END IF UPDATE u_cust SET state = 2, auditemp = :publ_operator, auditdate = getdate() WHERE cusid = :arg_cusid And State <> 2; IF sqlca.SQLCode <> 0 THEN arg_msg = '更新客户资料类型失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 And arg_ifcommit THEN COMMIT; END IF RETURN rslt end function public function integer uof_del_station (long arg_cusid, long arg_stationid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 long cnt SELECT count(*) INTO :cnt FROM u_station Where stationid = :arg_stationid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询货运部资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF DELETE FROM u_cust_station Where cusid = :arg_cusid and stationid = :arg_stationid; IF sqlca.SQLCode <> 0 THEN arg_msg = '删除客户货运部资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF RETURN rslt end function public function integer uof_add_station (s_cust_station arg_s_cust_station, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 Long cnt IF IsNull(arg_s_cust_station.cusid) THEN arg_s_cust_station.cusid = 0 IF IsNull(arg_s_cust_station.stationid) THEN arg_s_cust_station.stationid = 0 IF IsNull(arg_s_cust_station.dftflag) THEN arg_s_cust_station.dftflag = 0 cnt = 0 SELECT count(*) INTO :cnt FROM u_cust Where cusid = :arg_s_cust_station.cusid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询客户资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF cnt = 0 THEN arg_msg = '客户资料不存在或重复' rslt = 0 GOTO ext END IF cnt = 0 SELECT count(*) INTO :cnt FROM u_station Where stationid = :arg_s_cust_station.stationid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询货运部资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF cnt = 0 THEN arg_msg = '货运部资料不存在或重复' rslt = 0 GOTO ext END IF INSERT INTO u_cust_station (stationid, cusid, dftflag) VALUES(:arg_s_cust_station.stationid, :arg_s_cust_station.cusid, :arg_s_cust_station.dftflag); IF sqlca.SQLCode <> 0 THEN arg_msg = '建立客户货运部失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF RETURN rslt end function public function integer uof_set_dft_station (s_cust_station arg_s_cust_station, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 Long cnt String ls_dft_name,ls_dft_tel IF IsNull(arg_s_cust_station.cusid) THEN arg_s_cust_station.cusid = 0 IF IsNull(arg_s_cust_station.stationid) THEN arg_s_cust_station.stationid = 0 IF IsNull(arg_s_cust_station.dftflag) THEN arg_s_cust_station.dftflag = 0 cnt = 0 SELECT count(*) INTO :cnt FROM u_cust Where cusid = :arg_s_cust_station.cusid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询客户资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF SELECT stationname,tele INTO :ls_dft_name,:ls_dft_tel FROM u_station Where stationid = :arg_s_cust_station.stationid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询货运部资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF UPDATE u_cust_station SET dftflag = 1 WHERE stationid = :arg_s_cust_station.stationid AND cusid = :arg_s_cust_station.cusid; IF sqlca.SQLCode <> 0 THEN arg_msg = '设置客户默认货运部失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF UPDATE u_cust_station SET dftflag = 0 WHERE stationid <> :arg_s_cust_station.stationid AND cusid = :arg_s_cust_station.cusid; IF sqlca.SQLCode <> 0 THEN arg_msg = '取消设置客户其它默认货运部失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF UPDATE u_cust SET freight = :ls_dft_name, freight_tele = :ls_dft_tel Where cusid = :arg_s_cust_station.cusid; IF sqlca.SQLCode <> 0 THEN arg_msg = '更新客户默认货运部失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF RETURN rslt end function public function integer uof_add_item (s_item_cust_spt arg_s_item, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 Long cnt,ll_repid IF IsNull(arg_s_item.itemid) THEN arg_s_item.itemid = 0 IF IsNull(arg_s_item.relid) THEN arg_s_item.relid = 0 IF IsNull(arg_s_item.reltype) THEN arg_s_item.reltype = 0 IF IsNull(arg_s_item.dscrp) THEN arg_s_item.dscrp = '' cnt = 0 SELECT count(*) INTO :cnt FROM u_item_cust_spt_def Where itemid = :arg_s_item.itemid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询辅助项目资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF cnt = 0 IF arg_s_item.reltype = 0 THEN SELECT count(*) INTO :cnt FROM u_cust Where cusid = :arg_s_item.relid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询客户资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF ELSE arg_msg = '错误的项目类型' rslt = 0 GOTO ext END IF UPDATE u_item_cust_spt SET dscrp = :arg_s_item.dscrp WHERE itemid = :arg_s_item.itemid AND relid = :arg_s_item.relid AND reltype = :arg_s_item.reltype; IF sqlca.SQLCode = 0 THEN IF sqlca.SQLNRows = 0 THEN INSERT INTO u_item_cust_spt (itemid, relid, reltype, dscrp) VALUES(:arg_s_item.itemid, :arg_s_item.relid, :arg_s_item.reltype, :arg_s_item.dscrp); IF sqlca.SQLCode <> 0 THEN arg_msg = '建立辅助项目资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF END IF ELSE arg_msg = '更新辅助项目资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF RETURN rslt end function public function integer uof_add_sample (s_cust_sample arg_s_cust_sample, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 Long cnt,ll_sampleid IF IsNull(arg_s_cust_sample.saler) THEN arg_s_cust_sample.saler = '' IF IsNull(arg_s_cust_sample.mtrlid) THEN arg_s_cust_sample.mtrlid = 0 IF IsNull(arg_s_cust_sample.samplecontent) THEN arg_s_cust_sample.samplecontent = '' IF IsNull(arg_s_cust_sample.cusid) THEN arg_s_cust_sample.cusid = 0 IF IsNull(arg_s_cust_sample.sampleid) THEN arg_s_cust_sample.sampleid = 0 IF IsNull(arg_s_cust_sample.qty) THEN arg_s_cust_sample.qty = 0 IF arg_s_cust_sample.saler = '' THEN arg_msg = '请输入业务员' rslt = 0 GOTO ext END IF cnt = 0 SELECT count(*) INTO :cnt FROM u_cust Where cusid = :arg_s_cust_sample.cusid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询客户资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF cnt = 0 THEN arg_msg = '客户资料不存在或重复' rslt = 0 GOTO ext END IF cnt = 0 SELECT count(*) INTO :cnt FROM u_mtrldef Where mtrlid = :arg_s_cust_sample.mtrlid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询物料资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF cnt = 0 THEN arg_msg = '物料资料不存在或重复' rslt = 0 GOTO ext END IF IF arg_s_cust_sample.sampleid = 0 THEN ll_sampleid = f_sys_scidentity(0,"u_cust_sample","sampleid",arg_msg,TRUE,id_sqlca) IF ll_sampleid <= 0 THEN rslt = 0 GOTO ext END IF INSERT INTO u_cust_sample (sampleid, cusid, saler, sampledate, mtrlid, samplecontent, qty, opdate, opemp, kind) VALUES(:ll_sampleid, :arg_s_cust_sample.cusid, :arg_s_cust_sample.saler, :arg_s_cust_sample.sampledate, :arg_s_cust_sample.mtrlid, :arg_s_cust_sample.samplecontent, :arg_s_cust_sample.qty, getdate(), :arg_opemp, 0); IF sqlca.SQLCode <> 0 THEN arg_msg = '建立客户样版失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF ELSE UPDATE u_cust_sample SET saler = :arg_s_cust_sample.saler, sampledate = :arg_s_cust_sample.sampledate, mtrlid = :arg_s_cust_sample.mtrlid, samplecontent = :arg_s_cust_sample.samplecontent, qty = :arg_s_cust_sample.qty, moddate = getdate(), modemp = :arg_opemp Where sampleid = :arg_s_cust_sample.sampleid; IF sqlca.SQLCode <> 0 THEN arg_msg = '更新客户样版失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF RETURN rslt end function public function integer uof_del_sample (long arg_sampleid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 String ls_opemp SELECT opemp INTO :ls_opemp FROM u_cust_sample Where sampleid = :arg_sampleid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询客户样版失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF NOT sys_power_issuper AND arg_opemp <> ls_opemp THEN arg_msg = '不是资料建立人或系统管理员,不能删除' rslt = 0 GOTO ext END IF DELETE FROM u_cust_sample Where sampleid = :arg_sampleid; IF sqlca.SQLCode <> 0 THEN arg_msg = '删除客户样版失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF RETURN rslt end function public function integer uof_code_find (long arg_id, string arg_code, ref string arg_msg);Int rslt = 1 long cnt SELECT count(*) INTO :cnt FROM u_cust WHERE cusid <> :arg_id AND cuscode = :arg_code; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询客户编号:'+arg_code+',是否已用失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF cnt > 0 THEN arg_msg = '查询客户编号:'+arg_code+',已用,请重新输入' rslt = 0 GOTO ext END IF ext: RETURN rslt end function public function integer uof_del_giveback_rule (long arg_ruleid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 String ls_opemp SELECT opemp INTO :ls_opemp FROM u_giveback_rule Where rulid = :arg_ruleid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询客户返利规则失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF NOT sys_power_issuper AND arg_opemp <> ls_opemp THEN arg_msg = '不是资料建立人或系统管理员,不能删除' rslt = 0 GOTO ext END IF DELETE FROM u_giveback_rule Where rulid = :arg_ruleid; IF sqlca.SQLCode <> 0 THEN arg_msg = '删除客户返利规则失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF RETURN rslt end function public function integer uof_add_giveback_rule (s_cust_giveback_rule arg_s_rule, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 Long cnt,ll_rulid IF IsNull(arg_s_rule.timetype) THEN arg_s_rule.timetype = 0 IF IsNull(arg_s_rule.MtrlExp) THEN arg_s_rule.MtrlExp = '' IF IsNull(arg_s_rule.PriceExp) THEN arg_s_rule.PriceExp = '' IF IsNull(arg_s_rule.dscrp) THEN arg_s_rule.dscrp = '' IF IsNull(arg_s_rule.cusid) THEN arg_s_rule.cusid = 0 IF IsNull(arg_s_rule.rulid) THEN arg_s_rule.rulid = 0 IF arg_s_rule.MtrlExp = '' THEN arg_msg = '请输入物料条件' rslt = 0 GOTO ext END IF IF arg_s_rule.PriceExp = '' THEN arg_msg = '请输入价格条件' rslt = 0 GOTO ext END IF SELECT count(*) INTO :cnt FROM u_cust Where cusid = :arg_s_rule.cusid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询客户资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF cnt = 0 THEN arg_msg = '客户资料不存在或重复' rslt = 0 GOTO ext END IF DATETIME server_dt SELECT Top 1 getdate() INTO :server_dt FROM u_user USING sqlca ; //取得系统时间,借用操作员表 IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "查询操作失败,日期 " GOTO ext END IF IF arg_s_rule.rulid = 0 THEN ll_rulid = f_sys_scidentity(0,"u_giveback_rule","rulid",arg_msg,TRUE,id_sqlca) IF ll_rulid <= 0 THEN rslt = 0 GOTO ext END IF arg_s_rule.rulcode = getid(0,'RL',Date(server_dt),TRUE,sqlca) INSERT INTO u_giveback_rule (rulid, rulcode, cusid, timetype, begindate, Enddate, MtrlExp, PriceExp, gbRateExp, MtrlStr, PriceStr, gbRateStr, IsUse, dscrp, opdate, opemp) VALUES(:ll_rulid, :arg_s_rule.rulcode, :arg_s_rule.cusid, :arg_s_rule.timetype, :arg_s_rule.begindate, :arg_s_rule.Enddate, :arg_s_rule.MtrlExp, :arg_s_rule.PriceExp, :arg_s_rule.gbRateExp, :arg_s_rule.MtrlStr, :arg_s_rule.PriceStr, :arg_s_rule.gbRateStr, :arg_s_rule.IsUse, :arg_s_rule.dscrp, :server_dt, :arg_opemp); IF sqlca.SQLCode <> 0 THEN arg_msg = '建立客户返利规则失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF ELSE UPDATE u_giveback_rule SET timetype = :arg_s_rule.timetype, begindate = :arg_s_rule.begindate, EndDate = :arg_s_rule.EndDate, MtrlExp = :arg_s_rule.MtrlExp, PriceExp = :arg_s_rule.PriceExp, gbRateExp = :arg_s_rule.gbRateExp, MtrlStr = :arg_s_rule.MtrlStr, PriceStr = :arg_s_rule.PriceStr, gbRateStr = :arg_s_rule.gbRateStr, IsUse = :arg_s_rule.IsUse, dscrp = :arg_s_rule.dscrp, moddate = :server_dt, modemp = :arg_opemp Where rulid = :arg_s_rule.rulid; IF sqlca.SQLCode <> 0 THEN arg_msg = '更新客户返利规则失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF RETURN rslt end function public function integer uof_cust_score (long arg_cusid, decimal arg_score, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 Decimal ld_score IF arg_score < 0 THEN SELECT score - exchangescore INTO :ld_score FROM u_cust Where cusid = :arg_cusid; IF sqlca.SQLCode <> 0 THEN IF Pos(Lower(sqlca.SQLErrText),'more than') > 0 THEN arg_msg = '查询客户积分失败,查询数据返回值多于一个' ELSE arg_msg = '查询客户积分失败,'+sqlca.SQLErrText END IF rslt = 0 GOTO ext END IF IF arg_score + ld_score < 0 THEN arg_msg = '客户积分只有:'+String(ld_score,'#,##0.##')+',不能兑换:'+String(Abs(arg_score),'#,##0.##') rslt = 0 GOTO ext END IF UPDATE u_cust SET exchangescore = exchangescore + :arg_score Where cusid = :arg_cusid; IF sqlca.SQLCode <> 0 THEN arg_msg = '更新客户积分失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF ELSE UPDATE u_cust SET score = score + :arg_score Where cusid = :arg_cusid; IF sqlca.SQLCode <> 0 THEN arg_msg = '更新客户积分失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF sys_autoupdate_member = 1 THEN ////会员自动升级 IF uof_update_member(arg_cusid,arg_msg,arg_ifcommit) = 0 THEN rslt = 0 GOTO ext END IF END IF END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF arg_msg = '客户资料,'+ arg_msg RETURN rslt end function public function integer uof_update_member (long arg_cusid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 Long ll_memberid Dec ld_cusscore SELECT memberid , score INTO :ll_memberid, :ld_cusscore FROM u_cust Where cusid = :arg_cusid; IF sqlca.SQLCode <> 0 THEN IF Pos(Lower(sqlca.SQLErrText),'more than') > 0 THEN arg_msg = '查询客户会员类型失败,查询数据返回值多于一个' ELSE arg_msg = '查询客户会员类型失败,'+sqlca.SQLErrText END IF rslt = 0 GOTO ext END IF if ll_memberid = 0 then goto ext Decimal ld_score[] Long ld_memberid[] long ld_Pricelistid[] Long i = 1,NO_MXCHECK DECLARE CUR_member CURSOR FOR SELECT u_cust_member.updatescore, u_cust_member.memberid, u_cust_member.Pricelistid FROM u_cust_member Order By updatescore Desc; OPEN CUR_member; FETCH CUR_member INTO :ld_score[i],:ld_memberid[i],:ld_Pricelistid[i]; DO WHILE sqlca.SQLCode = 0 i++ FETCH CUR_member INTO :ld_score[i],:ld_memberid[i],:ld_Pricelistid[i]; LOOP CLOSE CUR_member; //检验明细是否读入完整 SELECT COUNT(*) INTO :NO_MXCHECK FROM u_cust_member ; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "查询操作失败,会员类型数量" GOTO ext END IF IF i <> (NO_MXCHECK+1) THEN rslt = 0 arg_msg = "查询操作失败,会员类型数量" GOTO ext END IF FOR i = 1 TO NO_MXCHECK IF ld_score[i] > 0 AND ld_cusscore >= ld_score[i] THEN UPDATE u_cust SET memberid = :ld_memberid[i], Pricelistid = :ld_Pricelistid[i] Where u_cust.cusid = :arg_cusid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "更新客户会员类型操作失败" GOTO ext END IF EXIT END IF NEXT ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF arg_msg = '客户资料,'+ arg_msg RETURN rslt end function public function integer uof_audit (long arg_cusid, string arg_emp, ref string arg_msg, boolean arg_ifcommit);Int li_flag Int rslt = 1 Select flag Into :li_flag From u_cust Where cusid = :arg_cusid; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '查询客户审核状态失败,'+sqlca.SQLErrText Goto ext End If If li_flag <> 0 Then rslt = 0 arg_msg = '客户不是在待审核状态,不能审核' Goto ext End If Update u_cust Set flag = 1 , auditemp = :arg_emp, auditdate = getdate() Where cusid = :arg_cusid And flag = 0 ; If sqlca.SQLCode = 0 Then If sqlca.SQLNRows = 0 Then rslt = 0 arg_msg = '客户正在审核,请刷新 '+sqlca.SQLErrText Goto ext End If Else rslt = 0 arg_msg = '客户审核失败 '+sqlca.SQLErrText Goto ext End If ext: If rslt = 0 Then Rollback; ElseIf rslt = 1 And arg_ifcommit Then Commit; End If Return rslt end function public function integer uof_secaudit (long arg_cusid, string arg_emp, ref string arg_msg, boolean arg_ifcommit);Int li_flag Int rslt = 1 Select flag Into :li_flag From u_cust Where cusid = :arg_cusid; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '查询客户审核状态失败,'+sqlca.SQLErrText Goto ext End If If li_flag <> 1 Then rslt = 0 arg_msg = '客户不是在待终核状态,不能终审' Goto ext End If Update u_cust Set flag = 2 , secauditemp = :arg_emp, secauditdate = getdate(), state = 1, pricelistflag = 1, pricelistemp = :arg_emp, pricelistdate = getdate() Where cusid = :arg_cusid And flag = 1 ; If sqlca.SQLCode = 0 Then If sqlca.SQLNRows = 0 Then rslt = 0 arg_msg = '客户正在审核,请刷新 '+sqlca.SQLErrText Goto ext End If Else rslt = 0 arg_msg = '客户终审失败 '+sqlca.SQLErrText Goto ext End If ext: If rslt = 0 Then Rollback; ElseIf rslt = 1 And arg_ifcommit Then Commit; End If Return rslt end function public function integer uof_c_secaudit (long arg_cusid, ref string arg_msg, boolean arg_ifcommit);Int li_flag Int rslt = 1 datetime ld_nulldt setnull(ld_nulldt) Select flag Into :li_flag From u_cust Where cusid = :arg_cusid; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '查询客户审核状态失败,'+sqlca.SQLErrText Goto ext End If If li_flag <> 2 Then rslt = 0 arg_msg = '客户不是在终审状态,不能撤终审' Goto ext End If Update u_cust Set flag = 1 , secauditemp = '', secauditdate = :ld_nulldt, state = 0, pricelistflag = 0, pricelistemp = '', pricelistdate = :ld_nulldt Where cusid = :arg_cusid And flag = 2 ; If sqlca.SQLCode = 0 Then If sqlca.SQLNRows = 0 Then rslt = 0 arg_msg = '客户正在撤审,请刷新 '+sqlca.SQLErrText Goto ext End If Else rslt = 0 arg_msg = '客户撤终审失败 '+sqlca.SQLErrText Goto ext End If ext: If rslt = 0 Then Rollback; ElseIf rslt = 1 And arg_ifcommit Then Commit; End If Return rslt end function public function integer uof_c_audit (long arg_cusid, ref string arg_msg, boolean arg_ifcommit);Int li_flag Int rslt = 1 DateTime ld_nulldt SetNull(ld_nulldt) Select flag Into :li_flag From u_cust Where cusid = :arg_cusid; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '查询客户审核状态失败,'+sqlca.SQLErrText Goto ext End If If li_flag <> 1 Then rslt = 0 arg_msg = '客户不是待终审状态,不能撤初审' Goto ext End If Update u_cust Set flag = 0 , auditemp = '', auditdate = :ld_nulldt Where cusid = :arg_cusid And flag = 1 ; If sqlca.SQLCode = 0 Then If sqlca.SQLNRows = 0 Then rslt = 0 arg_msg = '客户正在撤审,请刷新 '+sqlca.SQLErrText Goto ext End If Else rslt = 0 arg_msg = '客户撤初审失败 '+sqlca.SQLErrText Goto ext End If ext: If rslt = 0 Then Rollback; ElseIf rslt = 1 And arg_ifcommit Then Commit; End If Return rslt end function public function integer uof_update_pricelist (long arg_cusid, string arg_opemp, long arg_pricelistid, string arg_grade, decimal arg_rebate, long arg_exchangeid, string arg_pricedscrp, ref string arg_msg, boolean arg_ifcommit);Int rslt String ls_cuscode rslt = 1 IF arg_cusid <= 0 THEN rslt = 0 arg_msg = '更新客户价格表失败,无效的客户ID:'+String(arg_cusid) GOTO ext END IF SELECT cuscode INTO :ls_cuscode FROM u_cust Where cusid = :arg_cusid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询客户资料失败,ID:'+String(arg_cusid) GOTO ext END IF UPDATE u_cust SET pricelistid = :arg_pricelistid, grade = :arg_grade, rebate = :arg_rebate, pmodemp = :arg_opemp, pmoddate = getdate(), exchangeid = :arg_exchangeid, pricedscrp = :arg_pricedscrp Where cusid = :arg_cusid; IF sqlca.SQLCode = 0 THEN IF sqlca.SQLNRows = 0 THEN rslt = 0 arg_msg = '没有找到可更新的客户资料,ID:'+String(arg_cusid)+',编号:'+ls_cuscode GOTO ext END IF ELSE rslt = 0 arg_msg = '更新操作失败,客户ID:'+String(arg_cusid)+',编号:'+ls_cuscode GOTO ext END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 And arg_ifcommit THEN COMMIT; END IF RETURN rslt end function public function integer uof_add_interview (ref s_cust_interview arg_s_cust_interview, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 Long cnt,ll_interviewid IF IsNull(arg_s_cust_interview.saler) THEN arg_s_cust_interview.saler = '' IF IsNull(arg_s_cust_interview.interviewrep) THEN arg_s_cust_interview.interviewrep = '' IF IsNull(arg_s_cust_interview.tele) THEN arg_s_cust_interview.tele = '' IF IsNull(arg_s_cust_interview.interviewcontent) THEN arg_s_cust_interview.interviewcontent = '' IF IsNull(arg_s_cust_interview.dscrp) THEN arg_s_cust_interview.dscrp = '' IF IsNull(arg_s_cust_interview.cusid) THEN arg_s_cust_interview.cusid = 0 IF IsNull(arg_s_cust_interview.interviewid) THEN arg_s_cust_interview.interviewid = 0 IF IsNull(arg_s_cust_interview.amt) THEN arg_s_cust_interview.amt = 0 IF IsNull(arg_s_cust_interview.interviewway) THEN arg_s_cust_interview.interviewway = '' IF IsNull(arg_s_cust_interview.interviewrslt) THEN arg_s_cust_interview.interviewrslt = '' IF IsNull(arg_s_cust_interview.interviewform) THEN arg_s_cust_interview.interviewform = '' IF IsNull(arg_s_cust_interview.custassess) THEN arg_s_cust_interview.custassess = '' IF IsNull(arg_s_cust_interview.custview) THEN arg_s_cust_interview.custview = '' IF IsNull(arg_s_cust_interview.interviewaddress) THEN arg_s_cust_interview.interviewaddress = '' IF IsNull(arg_s_cust_interview.inputway) THEN arg_s_cust_interview.inputway = '' IF arg_s_cust_interview.saler = '' THEN arg_msg = '请输入业务员' rslt = 0 GOTO ext END IF IF arg_s_cust_interview.interviewcontent = '' THEN arg_msg = '请输入走访内容' rslt = 0 GOTO ext END IF SELECT count(*) INTO :cnt FROM u_cust Where cusid = :arg_s_cust_interview.cusid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询客户资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF cnt = 0 THEN arg_msg = '客户资料不存在或重复' rslt = 0 GOTO ext END IF IF arg_s_cust_interview.interviewid = 0 THEN ll_interviewid = f_sys_scidentity(0,"u_cust_interview","interviewid",arg_msg,True,id_sqlca) IF ll_interviewid <= 0 THEN rslt = 0 GOTO ext END IF INSERT INTO u_cust_interview (interviewid, cusid, saler, interviewdate, interviewrep, tele, interviewtime, interviewcontent, dscrp, amt, opdate, opemp, interviewway, interviewrslt, interviewform, custassess, custview, interviewaddress, inputway) VALUES(:ll_interviewid, :arg_s_cust_interview.cusid, :arg_s_cust_interview.saler, :arg_s_cust_interview.interviewdate, :arg_s_cust_interview.interviewrep, :arg_s_cust_interview.tele, :arg_s_cust_interview.interviewtime, :arg_s_cust_interview.interviewcontent, :arg_s_cust_interview.dscrp, :arg_s_cust_interview.amt, getdate(), :arg_opemp, :arg_s_cust_interview.interviewway, :arg_s_cust_interview.interviewrslt, :arg_s_cust_interview.interviewform, :arg_s_cust_interview.custassess, :arg_s_cust_interview.custview, :arg_s_cust_interview.interviewaddress, :arg_s_cust_interview.inputway); IF sqlca.SQLCode <> 0 THEN arg_msg = '建立客户走访失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF arg_s_cust_interview.interviewid = ll_interviewid ELSE UPDATE u_cust_interview SET saler = :arg_s_cust_interview.saler, interviewdate = :arg_s_cust_interview.interviewdate, interviewrep = :arg_s_cust_interview.interviewrep, tele = :arg_s_cust_interview.tele, interviewtime = :arg_s_cust_interview.interviewtime, interviewcontent = :arg_s_cust_interview.interviewcontent, dscrp = :arg_s_cust_interview.dscrp, amt = :arg_s_cust_interview.amt, moddate = getdate(), modemp = :arg_opemp, interviewway = :arg_s_cust_interview.interviewway, interviewrslt = :arg_s_cust_interview.interviewrslt, interviewform = :arg_s_cust_interview.interviewform, custassess = :arg_s_cust_interview.custassess, custview = :arg_s_cust_interview.custview WHERE interviewid = :arg_s_cust_interview.interviewid And GETDATE() <= DATEADD(dd, :sys_option_interview_edit_day, opdate); IF sqlca.SQLCode <> 0 THEN arg_msg = '更新客户走访失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF sqlca.SQLNRows = 0 THEN rslt = 0 arg_msg = '走访记录已超过修改时限,不能修改' GOTO ext END IF END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 And arg_ifcommit THEN COMMIT; END IF RETURN rslt end function on uo_cust.create call super::create TriggerEvent( this, "constructor" ) end on on uo_cust.destroy TriggerEvent( this, "destructor" ) call super::destroy end on