uo_cust.sru 50 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262
  1. $PBExportHeader$uo_cust.sru
  2. forward
  3. global type uo_cust from nonvisualobject
  4. end type
  5. end forward
  6. global type uo_cust from nonvisualobject
  7. end type
  8. global uo_cust uo_cust
  9. type variables
  10. Long uo_cusid
  11. end variables
  12. forward prototypes
  13. public function integer uof_add_plan (s_cust_plan arg_s_cust_plan, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
  14. public function integer uof_add_cust (s_custom arg_s_cust, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
  15. public function integer uof_del_interview (long arg_interviewid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
  16. public function integer uof_del_plan (long arg_planid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
  17. public function integer uof_del_rep (long arg_repid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
  18. public function integer uof_add_rep (s_cust_rep arg_s_cust_rep, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
  19. public function integer uof_del_cust (long arg_cusid, ref string arg_msg, boolean arg_ifcommit)
  20. public function integer uof_change_state (long arg_cusid, integer arg_state, ref string arg_msg, boolean arg_ifcommit)
  21. public function integer uof_del_station (long arg_cusid, long arg_stationid, ref string arg_msg, boolean arg_ifcommit)
  22. public function integer uof_add_station (s_cust_station arg_s_cust_station, ref string arg_msg, boolean arg_ifcommit)
  23. public function integer uof_set_dft_station (s_cust_station arg_s_cust_station, ref string arg_msg, boolean arg_ifcommit)
  24. public function integer uof_add_item (s_item_cust_spt arg_s_item, ref string arg_msg, boolean arg_ifcommit)
  25. public function integer uof_add_sample (s_cust_sample arg_s_cust_sample, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
  26. public function integer uof_del_sample (long arg_sampleid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
  27. public function integer uof_code_find (long arg_id, string arg_code, ref string arg_msg)
  28. public function integer uof_del_giveback_rule (long arg_ruleid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
  29. public function integer uof_add_giveback_rule (s_cust_giveback_rule arg_s_rule, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
  30. public function integer uof_cust_score (long arg_cusid, decimal arg_score, ref string arg_msg, boolean arg_ifcommit)
  31. public function integer uof_update_member (long arg_cusid, ref string arg_msg, boolean arg_ifcommit)
  32. public function integer uof_audit (long arg_cusid, string arg_emp, ref string arg_msg, boolean arg_ifcommit)
  33. public function integer uof_secaudit (long arg_cusid, string arg_emp, ref string arg_msg, boolean arg_ifcommit)
  34. public function integer uof_c_secaudit (long arg_cusid, ref string arg_msg, boolean arg_ifcommit)
  35. public function integer uof_c_audit (long arg_cusid, ref string arg_msg, boolean arg_ifcommit)
  36. 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)
  37. public function integer uof_add_interview (ref s_cust_interview arg_s_cust_interview, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
  38. end prototypes
  39. 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
  40. Long cnt,ll_planid
  41. long ll_empid
  42. string ls_cusname,ls_topic
  43. IF IsNull(arg_s_cust_plan.saler) THEN arg_s_cust_plan.saler = ''
  44. IF IsNull(arg_s_cust_plan.planrep) THEN arg_s_cust_plan.planrep = ''
  45. IF IsNull(arg_s_cust_plan.plancontent) THEN arg_s_cust_plan.plancontent = ''
  46. IF IsNull(arg_s_cust_plan.dscrp) THEN arg_s_cust_plan.dscrp = ''
  47. IF IsNull(arg_s_cust_plan.cusid) THEN arg_s_cust_plan.cusid = 0
  48. IF IsNull(arg_s_cust_plan.planid) THEN arg_s_cust_plan.planid = 0
  49. IF IsNull(arg_s_cust_plan.perdaynum) THEN arg_s_cust_plan.perdaynum = 0
  50. IF arg_s_cust_plan.saler = '' THEN
  51. arg_msg = '请输入业务员'
  52. rslt = 0
  53. GOTO ext
  54. END IF
  55. IF arg_s_cust_plan.plancontent = '' THEN
  56. arg_msg = '请输入计划内容'
  57. rslt = 0
  58. GOTO ext
  59. END IF
  60. select empid into :ll_empid
  61. from u_rs_empinfo
  62. where empname = :arg_s_cust_plan.saler;
  63. if sqlca.sqlcode <> 0 then ll_empid = 0
  64. SELECT name INTO :ls_cusname
  65. FROM u_cust
  66. Where cusid = :arg_s_cust_plan.cusid;
  67. IF sqlca.SQLCode <> 0 THEN
  68. arg_msg = '查询客户资料失败,'+sqlca.SQLErrText
  69. rslt = 0
  70. GOTO ext
  71. END IF
  72. ls_topic = '走访 '+ls_cusname
  73. IF arg_s_cust_plan.planid = 0 THEN
  74. ll_planid = f_sys_scidentity(0,"oa_emp_workplan","planid",arg_msg,TRUE,id_sqlca)
  75. IF ll_planid <= 0 THEN
  76. rslt = 0
  77. GOTO ext
  78. END IF
  79. INSERT INTO oa_emp_workplan
  80. (planid,
  81. relid,
  82. empname,
  83. stime,
  84. etime,
  85. relrep,
  86. content,
  87. dscrp,
  88. opdate,
  89. opemp,
  90. kind,
  91. empid,
  92. topic,
  93. perdaynum)
  94. VALUES(:ll_planid,
  95. :arg_s_cust_plan.cusid,
  96. :arg_s_cust_plan.saler,
  97. :arg_s_cust_plan.plandate,
  98. :arg_s_cust_plan.plandate,
  99. :arg_s_cust_plan.planrep,
  100. :arg_s_cust_plan.plancontent,
  101. :arg_s_cust_plan.dscrp,
  102. getdate(),
  103. :arg_opemp,
  104. 1,
  105. :ll_empid,
  106. :ls_topic,
  107. :arg_s_cust_plan.perdaynum);
  108. IF sqlca.SQLCode <> 0 THEN
  109. arg_msg = '建立客户计划失败,'+sqlca.SQLErrText
  110. rslt = 0
  111. GOTO ext
  112. END IF
  113. ELSE
  114. UPDATE oa_emp_workplan
  115. SET empname = :arg_s_cust_plan.saler,
  116. stime = :arg_s_cust_plan.plandate,
  117. etime = :arg_s_cust_plan.plandate,
  118. relrep = :arg_s_cust_plan.planrep,
  119. content = :arg_s_cust_plan.plancontent,
  120. dscrp = :arg_s_cust_plan.dscrp,
  121. moddate = getdate(),
  122. modemp = :arg_opemp,
  123. empid = :ll_empid,
  124. topic = :ls_topic,
  125. perdaynum = :arg_s_cust_plan.perdaynum
  126. Where planid = :arg_s_cust_plan.planid
  127. and kind = 1;
  128. IF sqlca.SQLCode <> 0 THEN
  129. arg_msg = '更新客户计划失败,'+sqlca.SQLErrText
  130. rslt = 0
  131. GOTO ext
  132. END IF
  133. END IF
  134. ext:
  135. IF rslt = 0 THEN
  136. ROLLBACK;
  137. ELSEIF rslt = 1 AND arg_ifcommit THEN
  138. COMMIT;
  139. END IF
  140. RETURN rslt
  141. end function
  142. public function integer uof_add_cust (s_custom arg_s_cust, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  143. Long cnt,ll_cusid,ll_i,ll_repid
  144. String ls_cusareaname,ls_areaname
  145. IF IsNull(arg_s_cust.cusid) THEN arg_s_cust.cusid = 0
  146. IF IsNull(arg_s_cust.cuscode) THEN arg_s_cust.cuscode = ''
  147. IF IsNull(arg_s_cust.Name) THEN arg_s_cust.Name = ''
  148. IF IsNull(arg_s_cust.bsntype) THEN arg_s_cust.bsntype = ''
  149. IF IsNull(arg_s_cust.rep) THEN arg_s_cust.rep = ''
  150. IF IsNull(arg_s_cust.tele) THEN arg_s_cust.tele = ''
  151. IF IsNull(arg_s_cust.tele1) THEN arg_s_cust.tele1 = ''
  152. IF IsNull(arg_s_cust.bank) THEN arg_s_cust.bank = ''
  153. IF IsNull(arg_s_cust.cunt) THEN arg_s_cust.cunt = ''
  154. IF IsNull(arg_s_cust.Address) THEN arg_s_cust.Address = ''
  155. IF IsNull(arg_s_cust.code) THEN arg_s_cust.code = ''
  156. IF IsNull(arg_s_cust.dscrp) THEN arg_s_cust.dscrp = ''
  157. IF IsNull(arg_s_cust.givebackrate) THEN arg_s_cust.givebackrate = 0
  158. IF IsNull(arg_s_cust.freight) THEN arg_s_cust.freight = ''
  159. IF IsNull(arg_s_cust.freight_tele) THEN arg_s_cust.freight_tele = ''
  160. IF IsNull(arg_s_cust.fax) THEN arg_s_cust.fax = ''
  161. IF IsNull(arg_s_cust.upname) THEN arg_s_cust.upname = ''
  162. IF IsNull(arg_s_cust.inuse) THEN arg_s_cust.inuse = 0
  163. IF IsNull(arg_s_cust.cusareaid) THEN arg_s_cust.cusareaid = 0
  164. IF IsNull(arg_s_cust.areaname) THEN arg_s_cust.areaname = ''
  165. IF IsNull(arg_s_cust.cusareaname) THEN arg_s_cust.cusareaname = ''
  166. IF IsNull(arg_s_cust.email) THEN arg_s_cust.email = ''
  167. IF IsNull(arg_s_cust.State) THEN arg_s_cust.State = 0
  168. IF IsNull(arg_s_cust.peoplenum) THEN arg_s_cust.peoplenum = 0
  169. IF IsNull(arg_s_cust.mainmarket) THEN arg_s_cust.mainmarket = ''
  170. IF IsNull(arg_s_cust.saleamt) THEN arg_s_cust.saleamt = 0
  171. IF IsNull(arg_s_cust.nethttp) THEN arg_s_cust.nethttp = ''
  172. IF IsNull(arg_s_cust.trade) THEN arg_s_cust.trade = ''
  173. IF IsNull(arg_s_cust.corporation) THEN arg_s_cust.corporation = ''
  174. IF IsNull(arg_s_cust.grade) THEN arg_s_cust.grade = ''
  175. IF IsNull(arg_s_cust.ifself) THEN arg_s_cust.ifself = 0
  176. IF IsNull(arg_s_cust.cuskind) THEN arg_s_cust.cuskind = ''
  177. IF IsNull(arg_s_cust.simplename) THEN arg_s_cust.simplename = ''
  178. IF IsNull(arg_s_cust.viewdaynum) THEN arg_s_cust.viewdaynum = 0
  179. IF IsNull(arg_s_cust.tele_sms) THEN arg_s_cust.tele_sms = ''
  180. IF IsNull(arg_s_cust.styleid) THEN arg_s_cust.styleid = 0
  181. IF IsNull(arg_s_cust.banktypeid) THEN arg_s_cust.banktypeid = 0
  182. IF IsNull(arg_s_cust.moneyid) THEN arg_s_cust.moneyid = 0
  183. IF IsNull(arg_s_cust.transday) THEN arg_s_cust.transday = 0
  184. IF IsNull(arg_s_cust.memberid) THEN arg_s_cust.memberid = 0
  185. IF IsNull(arg_s_cust.score) THEN arg_s_cust.score = 0
  186. IF IsNull(arg_s_cust.lsflag) THEN arg_s_cust.lsflag = 0
  187. IF IsNull(arg_s_cust.ljmail) THEN arg_s_cust.ljmail = ''
  188. IF IsNull(arg_s_cust.pricelistid) THEN arg_s_cust.pricelistid = 0
  189. IF IsNull(arg_s_cust.rebate) THEN arg_s_cust.rebate = 1
  190. IF IsNull(arg_s_cust.qqcode) THEN arg_s_cust.qqcode = ''
  191. IF IsNull(arg_s_cust.frcode) THEN arg_s_cust.frcode = ''
  192. IF IsNull(arg_s_cust.aifmb_flag) THEN arg_s_cust.aifmb_flag = 0
  193. IF IsNull(arg_s_cust.selecttype) THEN arg_s_cust.selecttype = -1
  194. IF IsNull(arg_s_cust.stat_rep) THEN arg_s_cust.stat_rep = ''
  195. IF IsNull(arg_s_cust.stat_handtel) THEN arg_s_cust.stat_handtel = ''
  196. IF IsNull(arg_s_cust.stat_address) THEN arg_s_cust.stat_address = ''
  197. IF IsNull(arg_s_cust.province) THEN arg_s_cust.province = ''
  198. IF IsNull(arg_s_cust.city) THEN arg_s_cust.city = ''
  199. IF IsNull(arg_s_cust.area) THEN arg_s_cust.area = ''
  200. //2014-08-14 还原,取消该字段
  201. arg_s_cust.selecttype = -1
  202. //
  203. IF arg_s_cust.cuscode = '' THEN
  204. arg_msg = '请输入客户编号!'
  205. rslt = 0
  206. GOTO ext
  207. END IF
  208. IF arg_s_cust.Name = '' THEN
  209. arg_msg = '请输入客户名称!'
  210. rslt = 0
  211. GOTO ext
  212. END IF
  213. cnt = 0
  214. SELECT count(*) INTO :cnt
  215. FROM u_cust
  216. WHERE name = :arg_s_cust.Name
  217. AND cusid <> :arg_s_cust.cusid;
  218. IF sqlca.SQLCode <> 0 THEN
  219. arg_msg = '查询客户名称是否重复失败'
  220. rslt = 0
  221. GOTO ext
  222. END IF
  223. IF cnt > 0 THEN
  224. arg_msg = '客户名称重复,请检查客户资料'
  225. rslt = 0
  226. GOTO ext
  227. END IF
  228. cnt = 0
  229. SELECT count(*) INTO :cnt
  230. FROM u_Cusarea
  231. Where cusareaid = :arg_s_cust.cusareaid;
  232. IF sqlca.SQLCode <> 0 THEN
  233. arg_msg = '查询客户区域资料是否重复失败'
  234. rslt = 0
  235. GOTO ext
  236. END IF
  237. IF cnt <> 1 THEN
  238. arg_msg = '客户区域资料重复或不存在,请检查客户区域资料'
  239. rslt = 0
  240. GOTO ext
  241. END IF
  242. IF arg_s_cust.bsntype = '' THEN
  243. arg_msg = '请选择业务员'
  244. rslt = 0
  245. GOTO ext
  246. END IF
  247. IF arg_s_cust.viewdaynum < 0 THEN
  248. arg_msg = '不合理的预收款天数'
  249. rslt = 0
  250. GOTO ext
  251. END IF
  252. if arg_s_cust.transday < 0 then
  253. arg_msg = '不合理的标准运输时间'
  254. rslt = 0
  255. GOTO ext
  256. END IF
  257. SELECT cusareaname,areaname
  258. INTO :ls_cusareaname,:ls_areaname
  259. FROM u_cusarea
  260. Where cusareaid = :arg_s_cust.cusareaid;
  261. IF sqlca.SQLCode <> 0 THEN
  262. arg_msg = '查询客户区域资料是否重复失败'
  263. rslt = 0
  264. GOTO ext
  265. END IF
  266. IF arg_s_cust.inuse = 0 AND arg_s_cust.cusid > 0 THEN
  267. IF f_check_cust_balcamt(arg_s_cust.cusid,arg_msg) = 0 THEN
  268. rslt = 0
  269. GOTO ext
  270. END IF
  271. END IF
  272. //只能设一个零售客户
  273. if arg_s_cust.lsflag = 1 then
  274. update u_cust
  275. set lsflag = 0
  276. where cusid <> :arg_s_cust.cusid;
  277. IF sqlca.SQLCode <> 0 THEN
  278. arg_msg = '更新客户资料零售标记失败,'+sqlca.SQLErrText
  279. rslt = 0
  280. GOTO ext
  281. END IF
  282. end if
  283. IF arg_s_cust.cusid = 0 THEN
  284. ll_cusid = f_sys_scidentity(0,"u_cust","cusid",arg_msg,TRUE,id_sqlca)
  285. IF ll_cusid <= 0 THEN
  286. rslt = 0
  287. GOTO ext
  288. END IF
  289. INSERT INTO u_cust
  290. (cusid,
  291. cuscode,
  292. name,
  293. custype,
  294. rep,
  295. tele,
  296. tele1,
  297. bank,
  298. cunt,
  299. address,
  300. code,
  301. dscrp,
  302. faxno,
  303. inuse,
  304. cusareaid,
  305. cusareaname,
  306. areaname,
  307. email,
  308. givebackrate,
  309. freight,
  310. freight_tele,
  311. upname,
  312. state,
  313. peoplenum,
  314. mainmarket,
  315. saleamt,
  316. nethttp,
  317. trade,
  318. corporation,
  319. grade,
  320. ifself,
  321. opdate,
  322. opemp,
  323. cuskind,
  324. simplename,
  325. viewdaynum,
  326. tele_sms,
  327. styleid,
  328. banktypeid,
  329. moneyid,
  330. transday,
  331. memberid,
  332. score,
  333. lsflag,
  334. ljmail,
  335. pricelistid,
  336. qqcode,
  337. frcode,
  338. aifmb_flag,
  339. rebate,
  340. selecttype,
  341. stat_rep,
  342. stat_handtel,
  343. stat_address,
  344. province,
  345. city,
  346. area)
  347. VALUES(:ll_cusid,
  348. :arg_s_cust.cuscode,
  349. :arg_s_cust.name,
  350. :arg_s_cust.bsntype,
  351. :arg_s_cust.rep,
  352. :arg_s_cust.tele,
  353. :arg_s_cust.tele1,
  354. :arg_s_cust.bank,
  355. :arg_s_cust.cunt,
  356. :arg_s_cust.address,
  357. :arg_s_cust.code,
  358. :arg_s_cust.dscrp,
  359. :arg_s_cust.fax,
  360. :arg_s_cust.inuse,
  361. :arg_s_cust.cusareaid,
  362. :ls_cusareaname,
  363. :ls_areaname,
  364. :arg_s_cust.email,
  365. :arg_s_cust.givebackrate,
  366. :arg_s_cust.freight,
  367. :arg_s_cust.freight_tele,
  368. :arg_s_cust.upname,
  369. :arg_s_cust.state,
  370. :arg_s_cust.peoplenum,
  371. :arg_s_cust.mainmarket,
  372. :arg_s_cust.saleamt,
  373. :arg_s_cust.nethttp,
  374. :arg_s_cust.trade,
  375. :arg_s_cust.corporation,
  376. :arg_s_cust.grade,
  377. :arg_s_cust.ifself,
  378. getdate(),
  379. :arg_opemp,
  380. :arg_s_cust.cuskind,
  381. :arg_s_cust.simplename,
  382. :arg_s_cust.viewdaynum,
  383. :arg_s_cust.tele_sms,
  384. :arg_s_cust.styleid,
  385. :arg_s_cust.banktypeid,
  386. :arg_s_cust.moneyid,
  387. :arg_s_cust.transday,
  388. :arg_s_cust.memberid,
  389. :arg_s_cust.score,
  390. :arg_s_cust.lsflag,
  391. :arg_s_cust.ljmail,
  392. :arg_s_cust.pricelistid,
  393. :arg_s_cust.qqcode,
  394. :arg_s_cust.frcode,
  395. :arg_s_cust.aifmb_flag,
  396. :arg_s_cust.rebate,
  397. :arg_s_cust.selecttype,
  398. :arg_s_cust.stat_rep,
  399. :arg_s_cust.stat_handtel,
  400. :arg_s_cust.stat_address,
  401. :arg_s_cust.province,
  402. :arg_s_cust.city,
  403. :arg_s_cust.area);
  404. IF sqlca.SQLCode <> 0 THEN
  405. arg_msg = '建立客户资料失败,'+sqlca.SQLErrText
  406. rslt = 0
  407. GOTO ext
  408. END IF
  409. uo_cusid = ll_cusid
  410. ELSE
  411. UPDATE u_cust
  412. SET cuscode = :arg_s_cust.cuscode,
  413. name = :arg_s_cust.name,
  414. custype = :arg_s_cust.bsntype,
  415. rep = :arg_s_cust.rep,
  416. tele = :arg_s_cust.tele,
  417. tele1 = :arg_s_cust.tele1,
  418. bank = :arg_s_cust.bank,
  419. cunt = :arg_s_cust.cunt,
  420. address = :arg_s_cust.address,
  421. code = :arg_s_cust.code,
  422. dscrp = :arg_s_cust.dscrp,
  423. faxno = :arg_s_cust.fax,
  424. inuse = :arg_s_cust.inuse,
  425. cusareaid = :arg_s_cust.cusareaid,
  426. cusareaname = :ls_cusareaname,
  427. areaname = :ls_areaname,
  428. email = :arg_s_cust.email,
  429. givebackrate = :arg_s_cust.givebackrate,
  430. freight = :arg_s_cust.freight,
  431. freight_tele = :arg_s_cust.freight_tele,
  432. upname = :arg_s_cust.upname,
  433. state = :arg_s_cust.state,
  434. peoplenum = :arg_s_cust.peoplenum,
  435. mainmarket = :arg_s_cust.mainmarket,
  436. saleamt = :arg_s_cust.saleamt,
  437. nethttp = :arg_s_cust.nethttp,
  438. trade = :arg_s_cust.trade,
  439. corporation = :arg_s_cust.corporation,
  440. grade = :arg_s_cust.grade,
  441. ifself = :arg_s_cust.ifself,
  442. moddate = getdate(),
  443. modemp = :arg_opemp,
  444. cuskind = :arg_s_cust.cuskind,
  445. simplename = :arg_s_cust.simplename,
  446. viewdaynum = :arg_s_cust.viewdaynum,
  447. tele_sms = :arg_s_cust.tele_sms,
  448. styleid = :arg_s_cust.styleid,
  449. banktypeid = :arg_s_cust.banktypeid,
  450. moneyid = :arg_s_cust.moneyid,
  451. transday = :arg_s_cust.transday,
  452. memberid = :arg_s_cust.memberid,
  453. score = :arg_s_cust.score,
  454. lsflag = :arg_s_cust.lsflag,
  455. ljmail = :arg_s_cust.ljmail,
  456. pricelistid = :arg_s_cust.pricelistid,
  457. qqcode = :arg_s_cust.qqcode,
  458. frcode = :arg_s_cust.frcode,
  459. aifmb_flag = :arg_s_cust.aifmb_flag,
  460. rebate = :arg_s_cust.rebate,
  461. selecttype = :arg_s_cust.selecttype,
  462. stat_rep = :arg_s_cust.stat_rep,
  463. stat_handtel = :arg_s_cust.stat_handtel,
  464. stat_address = :arg_s_cust.stat_address,
  465. province = :arg_s_cust.province,
  466. city = :arg_s_cust.city,
  467. area = :arg_s_cust.area
  468. Where cusid = :arg_s_cust.cusid;
  469. IF sqlca.SQLCode <> 0 THEN
  470. arg_msg = '更新客户资料失败,'+sqlca.SQLErrText
  471. rslt = 0
  472. GOTO ext
  473. END IF
  474. uo_cusid = arg_s_cust.cusid
  475. END IF
  476. ext:
  477. IF rslt = 0 THEN
  478. ROLLBACK;
  479. ELSEIF rslt = 1 AND arg_ifcommit THEN
  480. COMMIT;
  481. END IF
  482. RETURN rslt
  483. end function
  484. public function integer uof_del_interview (long arg_interviewid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  485. String ls_opemp
  486. SELECT opemp INTO :ls_opemp
  487. FROM u_cust_interview
  488. Where interviewid = :arg_interviewid;
  489. IF sqlca.SQLCode <> 0 THEN
  490. arg_msg = '查询客户走访资料失败,'+sqlca.SQLErrText
  491. rslt = 0
  492. GOTO ext
  493. END IF
  494. IF NOT sys_power_issuper AND arg_opemp <> ls_opemp THEN
  495. arg_msg = '不是资料建立人或系统管理员,不能删除'
  496. rslt = 0
  497. GOTO ext
  498. END IF
  499. DELETE FROM u_cust_interview Where interviewid = :arg_interviewid;
  500. IF sqlca.SQLCode <> 0 THEN
  501. arg_msg = '删除客户走访资料失败,'+sqlca.SQLErrText
  502. rslt = 0
  503. GOTO ext
  504. END IF
  505. ext:
  506. IF rslt = 0 THEN
  507. ROLLBACK;
  508. ELSEIF rslt = 1 AND arg_ifcommit THEN
  509. COMMIT;
  510. END IF
  511. RETURN rslt
  512. end function
  513. public function integer uof_del_plan (long arg_planid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  514. String ls_opemp
  515. SELECT opemp INTO :ls_opemp
  516. FROM oa_emp_workplan
  517. Where planid = :arg_planid
  518. and kind = 1;
  519. IF sqlca.SQLCode <> 0 THEN
  520. arg_msg = '查询客户工作计划失败,'+sqlca.SQLErrText
  521. rslt = 0
  522. GOTO ext
  523. END IF
  524. IF NOT sys_power_issuper AND arg_opemp <> ls_opemp THEN
  525. arg_msg = '不是资料建立人或系统管理员,不能删除'
  526. rslt = 0
  527. GOTO ext
  528. END IF
  529. DELETE FROM oa_emp_workplan
  530. Where planid = :arg_planid
  531. and kind = 1;
  532. IF sqlca.SQLCode <> 0 THEN
  533. arg_msg = '删除客户工作计划失败,'+sqlca.SQLErrText
  534. rslt = 0
  535. GOTO ext
  536. END IF
  537. ext:
  538. IF rslt = 0 THEN
  539. ROLLBACK;
  540. ELSEIF rslt = 1 AND arg_ifcommit THEN
  541. COMMIT;
  542. END IF
  543. RETURN rslt
  544. end function
  545. public function integer uof_del_rep (long arg_repid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  546. String ls_opemp
  547. SELECT opemp INTO :ls_opemp
  548. FROM u_cust_rep
  549. Where repid = :arg_repid;
  550. IF sqlca.SQLCode <> 0 THEN
  551. arg_msg = '查询客户联系人资料失败,'+sqlca.SQLErrText
  552. rslt = 0
  553. GOTO ext
  554. END IF
  555. IF NOT sys_power_issuper AND arg_opemp <> ls_opemp THEN
  556. arg_msg = '不是资料建立人或系统管理员,不能删除'
  557. rslt = 0
  558. GOTO ext
  559. END IF
  560. DELETE FROM u_cust_rep Where repid = :arg_repid;
  561. IF sqlca.SQLCode <> 0 THEN
  562. arg_msg = '删除客户联系人失败,'+sqlca.SQLErrText
  563. rslt = 0
  564. GOTO ext
  565. END IF
  566. ext:
  567. IF rslt = 0 THEN
  568. ROLLBACK;
  569. ELSEIF rslt = 1 AND arg_ifcommit THEN
  570. COMMIT;
  571. END IF
  572. RETURN rslt
  573. end function
  574. 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
  575. Long cnt,ll_repid
  576. IF IsNull(arg_s_cust_rep.repname) THEN arg_s_cust_rep.repname = ''
  577. IF IsNull(arg_s_cust_rep.duty) THEN arg_s_cust_rep.duty = ''
  578. IF IsNull(arg_s_cust_rep.sex) THEN arg_s_cust_rep.sex = ''
  579. IF IsNull(arg_s_cust_rep.officetel) THEN arg_s_cust_rep.officetel = ''
  580. IF IsNull(arg_s_cust_rep.handtel) THEN arg_s_cust_rep.handtel = ''
  581. IF IsNull(arg_s_cust_rep.faxno) THEN arg_s_cust_rep.faxno = ''
  582. IF IsNull(arg_s_cust_rep.email) THEN arg_s_cust_rep.email = ''
  583. IF IsNull(arg_s_cust_rep.dscrp) THEN arg_s_cust_rep.dscrp = ''
  584. IF IsNull(arg_s_cust_rep.deptname) THEN arg_s_cust_rep.deptname = ''
  585. IF IsNull(arg_s_cust_rep.interest) THEN arg_s_cust_rep.interest = ''
  586. IF IsNull(arg_s_cust_rep.mainproduct) THEN arg_s_cust_rep.mainproduct = ''
  587. IF IsNull(arg_s_cust_rep.qqcode) THEN arg_s_cust_rep.qqcode = ''
  588. IF IsNull(arg_s_cust_rep.msncode) THEN arg_s_cust_rep.msncode = ''
  589. IF IsNull(arg_s_cust_rep.address) THEN arg_s_cust_rep.address = ''
  590. IF IsNull(arg_s_cust_rep.ljmail) THEN arg_s_cust_rep.ljmail = ''
  591. IF arg_s_cust_rep.repname = '' THEN
  592. arg_msg = '请输入联系人名称'
  593. rslt = 0
  594. GOTO ext
  595. END IF
  596. SELECT count(*) INTO :cnt
  597. FROM u_cust
  598. Where cusid = :arg_s_cust_rep.cusid;
  599. IF sqlca.SQLCode <> 0 THEN
  600. arg_msg = '查询客户资料失败,'+sqlca.SQLErrText
  601. rslt = 0
  602. GOTO ext
  603. END IF
  604. IF cnt = 0 THEN
  605. arg_msg = '客户资料不存在或重复'
  606. rslt = 0
  607. GOTO ext
  608. END IF
  609. IF arg_s_cust_rep.repid = 0 THEN
  610. ll_repid = f_sys_scidentity(0,"u_cust_rep","repid",arg_msg,TRUE,id_sqlca)
  611. IF ll_repid <= 0 THEN
  612. rslt = 0
  613. GOTO ext
  614. END IF
  615. INSERT INTO u_cust_rep
  616. (repid,
  617. cusid,
  618. repname,
  619. duty,
  620. sex,
  621. officetel,
  622. handtel,
  623. faxno,
  624. email,
  625. dscrp,
  626. deptname,
  627. interest,
  628. mainproduct,
  629. qqcode,
  630. msncode,
  631. opdate,
  632. opemp,
  633. address,
  634. ljmail)
  635. VALUES(:ll_repid,
  636. :arg_s_cust_rep.cusid,
  637. :arg_s_cust_rep.repname,
  638. :arg_s_cust_rep.duty,
  639. :arg_s_cust_rep.sex,
  640. :arg_s_cust_rep.officetel,
  641. :arg_s_cust_rep.handtel,
  642. :arg_s_cust_rep.faxno,
  643. :arg_s_cust_rep.email,
  644. :arg_s_cust_rep.dscrp,
  645. :arg_s_cust_rep.deptname,
  646. :arg_s_cust_rep.interest,
  647. :arg_s_cust_rep.qqcode,
  648. :arg_s_cust_rep.mainproduct,
  649. :arg_s_cust_rep.msncode,
  650. getdate(),
  651. :arg_opemp,
  652. :arg_s_cust_rep.address,
  653. :arg_s_cust_rep.ljmail);
  654. IF sqlca.SQLCode <> 0 THEN
  655. arg_msg = '建立客户联系人失败,'+sqlca.SQLErrText
  656. rslt = 0
  657. GOTO ext
  658. END IF
  659. ELSE
  660. UPDATE u_cust_rep
  661. SET repname = :arg_s_cust_rep.repname,
  662. duty = :arg_s_cust_rep.duty,
  663. sex = :arg_s_cust_rep.sex,
  664. officetel = :arg_s_cust_rep.officetel,
  665. handtel = :arg_s_cust_rep.handtel,
  666. faxno = :arg_s_cust_rep.faxno,
  667. email = :arg_s_cust_rep.email,
  668. dscrp = :arg_s_cust_rep.dscrp,
  669. deptname = :arg_s_cust_rep.deptname,
  670. interest = :arg_s_cust_rep.interest,
  671. mainproduct = :arg_s_cust_rep.mainproduct,
  672. qqcode = :arg_s_cust_rep.qqcode,
  673. msncode = :arg_s_cust_rep.msncode,
  674. moddate = getdate(),
  675. modemp = :arg_opemp,
  676. address = :arg_s_cust_rep.address,
  677. ljmail = :arg_s_cust_rep.ljmail
  678. Where repid = :arg_s_cust_rep.repid;
  679. IF sqlca.SQLCode <> 0 THEN
  680. arg_msg = '更新客户联系人失败,'+sqlca.SQLErrText
  681. rslt = 0
  682. GOTO ext
  683. END IF
  684. END IF
  685. ext:
  686. IF rslt = 0 THEN
  687. ROLLBACK;
  688. ELSEIF rslt = 1 AND arg_ifcommit THEN
  689. COMMIT;
  690. END IF
  691. RETURN rslt
  692. end function
  693. public function integer uof_del_cust (long arg_cusid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  694. Long cnt
  695. SELECT count(*) INTO :cnt
  696. FROM u_cust
  697. Where cusid = :arg_cusid;
  698. IF sqlca.SQLCode <> 0 THEN
  699. arg_msg = '查询客户资料失败,'+sqlca.SQLErrText
  700. rslt = 0
  701. GOTO ext
  702. END IF
  703. cnt = 0
  704. SELECT count(*) INTO :cnt
  705. FROM u_cust_interview Where cusid = :arg_cusid ;
  706. IF sqlca.SQLCode <> 0 THEN
  707. arg_msg = "数据查询操作失败!(请重试!)"
  708. rslt = 0
  709. GOTO ext
  710. END IF
  711. IF cnt > 0 THEN
  712. arg_msg = "该资料已经使用于客户走访计划,不可以删除!"
  713. rslt = 0
  714. GOTO ext
  715. END IF
  716. cnt = 0
  717. SELECT count(*) INTO :cnt
  718. FROM u_cust_plan Where cusid = :arg_cusid ;
  719. IF sqlca.SQLCode <> 0 THEN
  720. arg_msg = "数据查询操作失败!(请重试!)"
  721. rslt = 0
  722. GOTO ext
  723. END IF
  724. IF cnt > 0 THEN
  725. arg_msg = "该资料已经使用于客户工作计划,不可以删除!"
  726. rslt = 0
  727. GOTO ext
  728. END IF
  729. cnt = 0
  730. SELECT count(*) INTO :cnt
  731. FROM u_saletask Where cusid = :arg_cusid ;
  732. IF sqlca.SQLCode <> 0 THEN
  733. arg_msg = "数据查询操作失败!(请重试!)"
  734. rslt = 0
  735. GOTO ext
  736. END IF
  737. IF cnt > 0 THEN
  738. arg_msg = "该资料已经使用于订货单记录,不可以删除!"
  739. rslt = 0
  740. GOTO ext
  741. END IF
  742. cnt = 0
  743. SELECT COUNT(*) INTO :cnt
  744. FROM u_outware WHERE u_outware.cusid = :arg_cusid
  745. AND billtype = 1;
  746. IF sqlca.SQLCode <> 0 THEN
  747. arg_msg = "数据查询操作失败!(请重试!)"
  748. rslt = 0
  749. GOTO ext
  750. END IF
  751. IF cnt > 0 THEN
  752. arg_msg = "该资料已经使用于出仓记录,不可以删除!"
  753. rslt = 0
  754. GOTO ext
  755. END IF
  756. cnt = 0
  757. SELECT COUNT(*) INTO :cnt
  758. FROM u_cusamt WHERE cusid = :arg_cusid
  759. AND billtype = 0;
  760. IF sqlca.SQLCode <> 0 THEN
  761. arg_msg = "数据查询操作失败!(请重试!)"
  762. rslt = 0
  763. GOTO ext
  764. END IF
  765. IF cnt > 0 THEN
  766. arg_msg = "该资料已经使用于客户收款单,不可以删除!"
  767. rslt = 0
  768. GOTO ext
  769. END IF
  770. cnt = 0
  771. SELECT COUNT(*) INTO :cnt
  772. FROM u_bmsttake Where cusid = :arg_cusid ;
  773. IF sqlca.SQLCode <> 0 THEN
  774. arg_msg = "数据查询操作失败!(请重试!)"
  775. rslt = 0
  776. GOTO ext
  777. END IF
  778. IF cnt > 0 THEN
  779. arg_msg = "该资料已经使用于应收帐,不可以删除!"
  780. rslt = 0
  781. GOTO ext
  782. END IF
  783. IF f_check_cust_balcamt(arg_cusid,arg_msg) = 0 THEN
  784. rslt = 0
  785. GOTO ext
  786. END IF
  787. DELETE FROM u_cust_rep Where cusid = :arg_cusid;
  788. IF sqlca.SQLCode <> 0 THEN
  789. arg_msg = '删除客户联系人失败,'+sqlca.SQLErrText
  790. rslt = 0
  791. GOTO ext
  792. END IF
  793. DELETE FROM u_cust_station Where cusid = :arg_cusid;
  794. IF sqlca.SQLCode <> 0 THEN
  795. arg_msg = '删除客户货运部失败,'+sqlca.SQLErrText
  796. rslt = 0
  797. GOTO ext
  798. END IF
  799. DELETE FROM u_item_cust_spt
  800. WHERE relid = :arg_cusid
  801. AND reltype = 0;
  802. IF sqlca.SQLCode <> 0 THEN
  803. arg_msg = '删除客户辅助项目失败,'+sqlca.SQLErrText
  804. rslt = 0
  805. GOTO ext
  806. END IF
  807. DELETE FROM u_cust Where cusid = :arg_cusid;
  808. IF sqlca.SQLCode <> 0 THEN
  809. arg_msg = '删除客户资料失败,'+sqlca.SQLErrText
  810. rslt = 0
  811. GOTO ext
  812. END IF
  813. ext:
  814. IF rslt = 0 THEN
  815. ROLLBACK;
  816. ELSEIF rslt = 1 AND arg_ifcommit THEN
  817. COMMIT;
  818. END IF
  819. RETURN rslt
  820. end function
  821. public function integer uof_change_state (long arg_cusid, integer arg_state, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1,li_state
  822. DateTime ldt_null
  823. SetNull(ldt_null)
  824. SELECT state INTO :li_state
  825. FROM u_cust
  826. Where cusid = :arg_cusid;
  827. IF sqlca.SQLCode <> 0 THEN
  828. arg_msg = '查询客户资料失败,'+sqlca.SQLErrText
  829. rslt = 0
  830. GOTO ext
  831. END IF
  832. IF arg_state = 1 THEN
  833. IF li_state = 1 THEN
  834. arg_msg = '客户资料已成为正式客户资料,不能再操作'
  835. rslt = 0
  836. GOTO ext
  837. END IF
  838. UPDATE u_cust
  839. SET state = 1,
  840. auditemp = :publ_operator,
  841. auditdate = getdate()
  842. WHERE cusid = :arg_cusid
  843. And State <> 1;
  844. IF sqlca.SQLCode <> 0 THEN
  845. arg_msg = '更新客户资料类型失败,'+sqlca.SQLErrText
  846. rslt = 0
  847. GOTO ext
  848. END IF
  849. ELSEIF arg_state = 0 THEN
  850. IF li_state = 0 THEN
  851. arg_msg = '客户资料已成为非正式客户资料,不能再操作'
  852. rslt = 0
  853. GOTO ext
  854. END IF
  855. UPDATE u_cust
  856. SET state = 0,
  857. auditemp = '',
  858. auditdate = :ldt_null
  859. WHERE cusid = :arg_cusid
  860. And State <> 0;
  861. IF sqlca.SQLCode <> 0 THEN
  862. arg_msg = '更新客户资料类型失败,'+sqlca.SQLErrText
  863. rslt = 0
  864. GOTO ext
  865. END IF
  866. ELSEIF arg_state = 2 THEN
  867. IF li_state = 2 THEN
  868. arg_msg = '客户资料成为黑名单客户资料,不能再操作'
  869. rslt = 0
  870. GOTO ext
  871. END IF
  872. UPDATE u_cust
  873. SET state = 2,
  874. auditemp = :publ_operator,
  875. auditdate = getdate()
  876. WHERE cusid = :arg_cusid
  877. And State <> 2;
  878. IF sqlca.SQLCode <> 0 THEN
  879. arg_msg = '更新客户资料类型失败,'+sqlca.SQLErrText
  880. rslt = 0
  881. GOTO ext
  882. END IF
  883. END IF
  884. ext:
  885. IF rslt = 0 THEN
  886. ROLLBACK;
  887. ELSEIF rslt = 1 And arg_ifcommit THEN
  888. COMMIT;
  889. END IF
  890. RETURN rslt
  891. end function
  892. public function integer uof_del_station (long arg_cusid, long arg_stationid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  893. long cnt
  894. SELECT count(*) INTO :cnt
  895. FROM u_station
  896. Where stationid = :arg_stationid;
  897. IF sqlca.SQLCode <> 0 THEN
  898. arg_msg = '查询货运部资料失败,'+sqlca.SQLErrText
  899. rslt = 0
  900. GOTO ext
  901. END IF
  902. DELETE FROM u_cust_station
  903. Where cusid = :arg_cusid
  904. and stationid = :arg_stationid;
  905. IF sqlca.SQLCode <> 0 THEN
  906. arg_msg = '删除客户货运部资料失败,'+sqlca.SQLErrText
  907. rslt = 0
  908. GOTO ext
  909. END IF
  910. ext:
  911. IF rslt = 0 THEN
  912. ROLLBACK;
  913. ELSEIF rslt = 1 AND arg_ifcommit THEN
  914. COMMIT;
  915. END IF
  916. RETURN rslt
  917. end function
  918. public function integer uof_add_station (s_cust_station arg_s_cust_station, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  919. Long cnt
  920. IF IsNull(arg_s_cust_station.cusid) THEN arg_s_cust_station.cusid = 0
  921. IF IsNull(arg_s_cust_station.stationid) THEN arg_s_cust_station.stationid = 0
  922. IF IsNull(arg_s_cust_station.dftflag) THEN arg_s_cust_station.dftflag = 0
  923. cnt = 0
  924. SELECT count(*) INTO :cnt
  925. FROM u_cust
  926. Where cusid = :arg_s_cust_station.cusid;
  927. IF sqlca.SQLCode <> 0 THEN
  928. arg_msg = '查询客户资料失败,'+sqlca.SQLErrText
  929. rslt = 0
  930. GOTO ext
  931. END IF
  932. IF cnt = 0 THEN
  933. arg_msg = '客户资料不存在或重复'
  934. rslt = 0
  935. GOTO ext
  936. END IF
  937. cnt = 0
  938. SELECT count(*) INTO :cnt
  939. FROM u_station
  940. Where stationid = :arg_s_cust_station.stationid;
  941. IF sqlca.SQLCode <> 0 THEN
  942. arg_msg = '查询货运部资料失败,'+sqlca.SQLErrText
  943. rslt = 0
  944. GOTO ext
  945. END IF
  946. IF cnt = 0 THEN
  947. arg_msg = '货运部资料不存在或重复'
  948. rslt = 0
  949. GOTO ext
  950. END IF
  951. INSERT INTO u_cust_station
  952. (stationid,
  953. cusid,
  954. dftflag)
  955. VALUES(:arg_s_cust_station.stationid,
  956. :arg_s_cust_station.cusid,
  957. :arg_s_cust_station.dftflag);
  958. IF sqlca.SQLCode <> 0 THEN
  959. arg_msg = '建立客户货运部失败,'+sqlca.SQLErrText
  960. rslt = 0
  961. GOTO ext
  962. END IF
  963. ext:
  964. IF rslt = 0 THEN
  965. ROLLBACK;
  966. ELSEIF rslt = 1 AND arg_ifcommit THEN
  967. COMMIT;
  968. END IF
  969. RETURN rslt
  970. end function
  971. public function integer uof_set_dft_station (s_cust_station arg_s_cust_station, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  972. Long cnt
  973. String ls_dft_name,ls_dft_tel
  974. IF IsNull(arg_s_cust_station.cusid) THEN arg_s_cust_station.cusid = 0
  975. IF IsNull(arg_s_cust_station.stationid) THEN arg_s_cust_station.stationid = 0
  976. IF IsNull(arg_s_cust_station.dftflag) THEN arg_s_cust_station.dftflag = 0
  977. cnt = 0
  978. SELECT count(*) INTO :cnt
  979. FROM u_cust
  980. Where cusid = :arg_s_cust_station.cusid;
  981. IF sqlca.SQLCode <> 0 THEN
  982. arg_msg = '查询客户资料失败,'+sqlca.SQLErrText
  983. rslt = 0
  984. GOTO ext
  985. END IF
  986. SELECT stationname,tele
  987. INTO :ls_dft_name,:ls_dft_tel
  988. FROM u_station
  989. Where stationid = :arg_s_cust_station.stationid;
  990. IF sqlca.SQLCode <> 0 THEN
  991. arg_msg = '查询货运部资料失败,'+sqlca.SQLErrText
  992. rslt = 0
  993. GOTO ext
  994. END IF
  995. UPDATE u_cust_station
  996. SET dftflag = 1
  997. WHERE stationid = :arg_s_cust_station.stationid
  998. AND cusid = :arg_s_cust_station.cusid;
  999. IF sqlca.SQLCode <> 0 THEN
  1000. arg_msg = '设置客户默认货运部失败,'+sqlca.SQLErrText
  1001. rslt = 0
  1002. GOTO ext
  1003. END IF
  1004. UPDATE u_cust_station
  1005. SET dftflag = 0
  1006. WHERE stationid <> :arg_s_cust_station.stationid
  1007. AND cusid = :arg_s_cust_station.cusid;
  1008. IF sqlca.SQLCode <> 0 THEN
  1009. arg_msg = '取消设置客户其它默认货运部失败,'+sqlca.SQLErrText
  1010. rslt = 0
  1011. GOTO ext
  1012. END IF
  1013. UPDATE u_cust
  1014. SET freight = :ls_dft_name,
  1015. freight_tele = :ls_dft_tel
  1016. Where cusid = :arg_s_cust_station.cusid;
  1017. IF sqlca.SQLCode <> 0 THEN
  1018. arg_msg = '更新客户默认货运部失败,'+sqlca.SQLErrText
  1019. rslt = 0
  1020. GOTO ext
  1021. END IF
  1022. ext:
  1023. IF rslt = 0 THEN
  1024. ROLLBACK;
  1025. ELSEIF rslt = 1 AND arg_ifcommit THEN
  1026. COMMIT;
  1027. END IF
  1028. RETURN rslt
  1029. end function
  1030. public function integer uof_add_item (s_item_cust_spt arg_s_item, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  1031. Long cnt,ll_repid
  1032. IF IsNull(arg_s_item.itemid) THEN arg_s_item.itemid = 0
  1033. IF IsNull(arg_s_item.relid) THEN arg_s_item.relid = 0
  1034. IF IsNull(arg_s_item.reltype) THEN arg_s_item.reltype = 0
  1035. IF IsNull(arg_s_item.dscrp) THEN arg_s_item.dscrp = ''
  1036. cnt = 0
  1037. SELECT count(*) INTO :cnt
  1038. FROM u_item_cust_spt_def
  1039. Where itemid = :arg_s_item.itemid;
  1040. IF sqlca.SQLCode <> 0 THEN
  1041. arg_msg = '查询辅助项目资料失败,'+sqlca.SQLErrText
  1042. rslt = 0
  1043. GOTO ext
  1044. END IF
  1045. cnt = 0
  1046. IF arg_s_item.reltype = 0 THEN
  1047. SELECT count(*) INTO :cnt
  1048. FROM u_cust
  1049. Where cusid = :arg_s_item.relid;
  1050. IF sqlca.SQLCode <> 0 THEN
  1051. arg_msg = '查询客户资料失败,'+sqlca.SQLErrText
  1052. rslt = 0
  1053. GOTO ext
  1054. END IF
  1055. ELSE
  1056. arg_msg = '错误的项目类型'
  1057. rslt = 0
  1058. GOTO ext
  1059. END IF
  1060. UPDATE u_item_cust_spt
  1061. SET dscrp = :arg_s_item.dscrp
  1062. WHERE itemid = :arg_s_item.itemid
  1063. AND relid = :arg_s_item.relid
  1064. AND reltype = :arg_s_item.reltype;
  1065. IF sqlca.SQLCode = 0 THEN
  1066. IF sqlca.SQLNRows = 0 THEN
  1067. INSERT INTO u_item_cust_spt
  1068. (itemid,
  1069. relid,
  1070. reltype,
  1071. dscrp)
  1072. VALUES(:arg_s_item.itemid,
  1073. :arg_s_item.relid,
  1074. :arg_s_item.reltype,
  1075. :arg_s_item.dscrp);
  1076. IF sqlca.SQLCode <> 0 THEN
  1077. arg_msg = '建立辅助项目资料失败,'+sqlca.SQLErrText
  1078. rslt = 0
  1079. GOTO ext
  1080. END IF
  1081. END IF
  1082. ELSE
  1083. arg_msg = '更新辅助项目资料失败,'+sqlca.SQLErrText
  1084. rslt = 0
  1085. GOTO ext
  1086. END IF
  1087. ext:
  1088. IF rslt = 0 THEN
  1089. ROLLBACK;
  1090. ELSEIF rslt = 1 AND arg_ifcommit THEN
  1091. COMMIT;
  1092. END IF
  1093. RETURN rslt
  1094. end function
  1095. 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
  1096. Long cnt,ll_sampleid
  1097. IF IsNull(arg_s_cust_sample.saler) THEN arg_s_cust_sample.saler = ''
  1098. IF IsNull(arg_s_cust_sample.mtrlid) THEN arg_s_cust_sample.mtrlid = 0
  1099. IF IsNull(arg_s_cust_sample.samplecontent) THEN arg_s_cust_sample.samplecontent = ''
  1100. IF IsNull(arg_s_cust_sample.cusid) THEN arg_s_cust_sample.cusid = 0
  1101. IF IsNull(arg_s_cust_sample.sampleid) THEN arg_s_cust_sample.sampleid = 0
  1102. IF IsNull(arg_s_cust_sample.qty) THEN arg_s_cust_sample.qty = 0
  1103. IF arg_s_cust_sample.saler = '' THEN
  1104. arg_msg = '请输入业务员'
  1105. rslt = 0
  1106. GOTO ext
  1107. END IF
  1108. cnt = 0
  1109. SELECT count(*) INTO :cnt
  1110. FROM u_cust
  1111. Where cusid = :arg_s_cust_sample.cusid;
  1112. IF sqlca.SQLCode <> 0 THEN
  1113. arg_msg = '查询客户资料失败,'+sqlca.SQLErrText
  1114. rslt = 0
  1115. GOTO ext
  1116. END IF
  1117. IF cnt = 0 THEN
  1118. arg_msg = '客户资料不存在或重复'
  1119. rslt = 0
  1120. GOTO ext
  1121. END IF
  1122. cnt = 0
  1123. SELECT count(*) INTO :cnt
  1124. FROM u_mtrldef
  1125. Where mtrlid = :arg_s_cust_sample.mtrlid;
  1126. IF sqlca.SQLCode <> 0 THEN
  1127. arg_msg = '查询物料资料失败,'+sqlca.SQLErrText
  1128. rslt = 0
  1129. GOTO ext
  1130. END IF
  1131. IF cnt = 0 THEN
  1132. arg_msg = '物料资料不存在或重复'
  1133. rslt = 0
  1134. GOTO ext
  1135. END IF
  1136. IF arg_s_cust_sample.sampleid = 0 THEN
  1137. ll_sampleid = f_sys_scidentity(0,"u_cust_sample","sampleid",arg_msg,TRUE,id_sqlca)
  1138. IF ll_sampleid <= 0 THEN
  1139. rslt = 0
  1140. GOTO ext
  1141. END IF
  1142. INSERT INTO u_cust_sample
  1143. (sampleid,
  1144. cusid,
  1145. saler,
  1146. sampledate,
  1147. mtrlid,
  1148. samplecontent,
  1149. qty,
  1150. opdate,
  1151. opemp,
  1152. kind)
  1153. VALUES(:ll_sampleid,
  1154. :arg_s_cust_sample.cusid,
  1155. :arg_s_cust_sample.saler,
  1156. :arg_s_cust_sample.sampledate,
  1157. :arg_s_cust_sample.mtrlid,
  1158. :arg_s_cust_sample.samplecontent,
  1159. :arg_s_cust_sample.qty,
  1160. getdate(),
  1161. :arg_opemp,
  1162. 0);
  1163. IF sqlca.SQLCode <> 0 THEN
  1164. arg_msg = '建立客户样版失败,'+sqlca.SQLErrText
  1165. rslt = 0
  1166. GOTO ext
  1167. END IF
  1168. ELSE
  1169. UPDATE u_cust_sample
  1170. SET saler = :arg_s_cust_sample.saler,
  1171. sampledate = :arg_s_cust_sample.sampledate,
  1172. mtrlid = :arg_s_cust_sample.mtrlid,
  1173. samplecontent = :arg_s_cust_sample.samplecontent,
  1174. qty = :arg_s_cust_sample.qty,
  1175. moddate = getdate(),
  1176. modemp = :arg_opemp
  1177. Where sampleid = :arg_s_cust_sample.sampleid;
  1178. IF sqlca.SQLCode <> 0 THEN
  1179. arg_msg = '更新客户样版失败,'+sqlca.SQLErrText
  1180. rslt = 0
  1181. GOTO ext
  1182. END IF
  1183. END IF
  1184. ext:
  1185. IF rslt = 0 THEN
  1186. ROLLBACK;
  1187. ELSEIF rslt = 1 AND arg_ifcommit THEN
  1188. COMMIT;
  1189. END IF
  1190. RETURN rslt
  1191. end function
  1192. public function integer uof_del_sample (long arg_sampleid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  1193. String ls_opemp
  1194. SELECT opemp INTO :ls_opemp
  1195. FROM u_cust_sample
  1196. Where sampleid = :arg_sampleid;
  1197. IF sqlca.SQLCode <> 0 THEN
  1198. arg_msg = '查询客户样版失败,'+sqlca.SQLErrText
  1199. rslt = 0
  1200. GOTO ext
  1201. END IF
  1202. IF NOT sys_power_issuper AND arg_opemp <> ls_opemp THEN
  1203. arg_msg = '不是资料建立人或系统管理员,不能删除'
  1204. rslt = 0
  1205. GOTO ext
  1206. END IF
  1207. DELETE FROM u_cust_sample Where sampleid = :arg_sampleid;
  1208. IF sqlca.SQLCode <> 0 THEN
  1209. arg_msg = '删除客户样版失败,'+sqlca.SQLErrText
  1210. rslt = 0
  1211. GOTO ext
  1212. END IF
  1213. ext:
  1214. IF rslt = 0 THEN
  1215. ROLLBACK;
  1216. ELSEIF rslt = 1 AND arg_ifcommit THEN
  1217. COMMIT;
  1218. END IF
  1219. RETURN rslt
  1220. end function
  1221. public function integer uof_code_find (long arg_id, string arg_code, ref string arg_msg);Int rslt = 1
  1222. long cnt
  1223. SELECT count(*) INTO :cnt
  1224. FROM u_cust
  1225. WHERE cusid <> :arg_id
  1226. AND cuscode = :arg_code;
  1227. IF sqlca.SQLCode <> 0 THEN
  1228. arg_msg = '查询客户编号:'+arg_code+',是否已用失败,'+sqlca.SQLErrText
  1229. rslt = 0
  1230. GOTO ext
  1231. END IF
  1232. IF cnt > 0 THEN
  1233. arg_msg = '查询客户编号:'+arg_code+',已用,请重新输入'
  1234. rslt = 0
  1235. GOTO ext
  1236. END IF
  1237. ext:
  1238. RETURN rslt
  1239. end function
  1240. public function integer uof_del_giveback_rule (long arg_ruleid, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  1241. String ls_opemp
  1242. SELECT opemp INTO :ls_opemp
  1243. FROM u_giveback_rule
  1244. Where rulid = :arg_ruleid;
  1245. IF sqlca.SQLCode <> 0 THEN
  1246. arg_msg = '查询客户返利规则失败,'+sqlca.SQLErrText
  1247. rslt = 0
  1248. GOTO ext
  1249. END IF
  1250. IF NOT sys_power_issuper AND arg_opemp <> ls_opemp THEN
  1251. arg_msg = '不是资料建立人或系统管理员,不能删除'
  1252. rslt = 0
  1253. GOTO ext
  1254. END IF
  1255. DELETE FROM u_giveback_rule Where rulid = :arg_ruleid;
  1256. IF sqlca.SQLCode <> 0 THEN
  1257. arg_msg = '删除客户返利规则失败,'+sqlca.SQLErrText
  1258. rslt = 0
  1259. GOTO ext
  1260. END IF
  1261. ext:
  1262. IF rslt = 0 THEN
  1263. ROLLBACK;
  1264. ELSEIF rslt = 1 AND arg_ifcommit THEN
  1265. COMMIT;
  1266. END IF
  1267. RETURN rslt
  1268. end function
  1269. 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
  1270. Long cnt,ll_rulid
  1271. IF IsNull(arg_s_rule.timetype) THEN arg_s_rule.timetype = 0
  1272. IF IsNull(arg_s_rule.MtrlExp) THEN arg_s_rule.MtrlExp = ''
  1273. IF IsNull(arg_s_rule.PriceExp) THEN arg_s_rule.PriceExp = ''
  1274. IF IsNull(arg_s_rule.dscrp) THEN arg_s_rule.dscrp = ''
  1275. IF IsNull(arg_s_rule.cusid) THEN arg_s_rule.cusid = 0
  1276. IF IsNull(arg_s_rule.rulid) THEN arg_s_rule.rulid = 0
  1277. IF arg_s_rule.MtrlExp = '' THEN
  1278. arg_msg = '请输入物料条件'
  1279. rslt = 0
  1280. GOTO ext
  1281. END IF
  1282. IF arg_s_rule.PriceExp = '' THEN
  1283. arg_msg = '请输入价格条件'
  1284. rslt = 0
  1285. GOTO ext
  1286. END IF
  1287. SELECT count(*) INTO :cnt
  1288. FROM u_cust
  1289. Where cusid = :arg_s_rule.cusid;
  1290. IF sqlca.SQLCode <> 0 THEN
  1291. arg_msg = '查询客户资料失败,'+sqlca.SQLErrText
  1292. rslt = 0
  1293. GOTO ext
  1294. END IF
  1295. IF cnt = 0 THEN
  1296. arg_msg = '客户资料不存在或重复'
  1297. rslt = 0
  1298. GOTO ext
  1299. END IF
  1300. DATETIME server_dt
  1301. SELECT Top 1 getdate() INTO :server_dt FROM u_user USING sqlca ;
  1302. //取得系统时间,借用操作员表
  1303. IF sqlca.SQLCode <> 0 THEN
  1304. rslt = 0
  1305. arg_msg = "查询操作失败,日期 "
  1306. GOTO ext
  1307. END IF
  1308. IF arg_s_rule.rulid = 0 THEN
  1309. ll_rulid = f_sys_scidentity(0,"u_giveback_rule","rulid",arg_msg,TRUE,id_sqlca)
  1310. IF ll_rulid <= 0 THEN
  1311. rslt = 0
  1312. GOTO ext
  1313. END IF
  1314. arg_s_rule.rulcode = getid(0,'RL',Date(server_dt),TRUE,sqlca)
  1315. INSERT INTO u_giveback_rule
  1316. (rulid,
  1317. rulcode,
  1318. cusid,
  1319. timetype,
  1320. begindate,
  1321. Enddate,
  1322. MtrlExp,
  1323. PriceExp,
  1324. gbRateExp,
  1325. MtrlStr,
  1326. PriceStr,
  1327. gbRateStr,
  1328. IsUse,
  1329. dscrp,
  1330. opdate,
  1331. opemp)
  1332. VALUES(:ll_rulid,
  1333. :arg_s_rule.rulcode,
  1334. :arg_s_rule.cusid,
  1335. :arg_s_rule.timetype,
  1336. :arg_s_rule.begindate,
  1337. :arg_s_rule.Enddate,
  1338. :arg_s_rule.MtrlExp,
  1339. :arg_s_rule.PriceExp,
  1340. :arg_s_rule.gbRateExp,
  1341. :arg_s_rule.MtrlStr,
  1342. :arg_s_rule.PriceStr,
  1343. :arg_s_rule.gbRateStr,
  1344. :arg_s_rule.IsUse,
  1345. :arg_s_rule.dscrp,
  1346. :server_dt,
  1347. :arg_opemp);
  1348. IF sqlca.SQLCode <> 0 THEN
  1349. arg_msg = '建立客户返利规则失败,'+sqlca.SQLErrText
  1350. rslt = 0
  1351. GOTO ext
  1352. END IF
  1353. ELSE
  1354. UPDATE u_giveback_rule
  1355. SET timetype = :arg_s_rule.timetype,
  1356. begindate = :arg_s_rule.begindate,
  1357. EndDate = :arg_s_rule.EndDate,
  1358. MtrlExp = :arg_s_rule.MtrlExp,
  1359. PriceExp = :arg_s_rule.PriceExp,
  1360. gbRateExp = :arg_s_rule.gbRateExp,
  1361. MtrlStr = :arg_s_rule.MtrlStr,
  1362. PriceStr = :arg_s_rule.PriceStr,
  1363. gbRateStr = :arg_s_rule.gbRateStr,
  1364. IsUse = :arg_s_rule.IsUse,
  1365. dscrp = :arg_s_rule.dscrp,
  1366. moddate = :server_dt,
  1367. modemp = :arg_opemp
  1368. Where rulid = :arg_s_rule.rulid;
  1369. IF sqlca.SQLCode <> 0 THEN
  1370. arg_msg = '更新客户返利规则失败,'+sqlca.SQLErrText
  1371. rslt = 0
  1372. GOTO ext
  1373. END IF
  1374. END IF
  1375. ext:
  1376. IF rslt = 0 THEN
  1377. ROLLBACK;
  1378. ELSEIF rslt = 1 AND arg_ifcommit THEN
  1379. COMMIT;
  1380. END IF
  1381. RETURN rslt
  1382. end function
  1383. public function integer uof_cust_score (long arg_cusid, decimal arg_score, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  1384. Decimal ld_score
  1385. IF arg_score < 0 THEN
  1386. SELECT score - exchangescore INTO :ld_score
  1387. FROM u_cust
  1388. Where cusid = :arg_cusid;
  1389. IF sqlca.SQLCode <> 0 THEN
  1390. IF Pos(Lower(sqlca.SQLErrText),'more than') > 0 THEN
  1391. arg_msg = '查询客户积分失败,查询数据返回值多于一个'
  1392. ELSE
  1393. arg_msg = '查询客户积分失败,'+sqlca.SQLErrText
  1394. END IF
  1395. rslt = 0
  1396. GOTO ext
  1397. END IF
  1398. IF arg_score + ld_score < 0 THEN
  1399. arg_msg = '客户积分只有:'+String(ld_score,'#,##0.##')+',不能兑换:'+String(Abs(arg_score),'#,##0.##')
  1400. rslt = 0
  1401. GOTO ext
  1402. END IF
  1403. UPDATE u_cust
  1404. SET exchangescore = exchangescore + :arg_score
  1405. Where cusid = :arg_cusid;
  1406. IF sqlca.SQLCode <> 0 THEN
  1407. arg_msg = '更新客户积分失败,'+sqlca.SQLErrText
  1408. rslt = 0
  1409. GOTO ext
  1410. END IF
  1411. ELSE
  1412. UPDATE u_cust
  1413. SET score = score + :arg_score
  1414. Where cusid = :arg_cusid;
  1415. IF sqlca.SQLCode <> 0 THEN
  1416. arg_msg = '更新客户积分失败,'+sqlca.SQLErrText
  1417. rslt = 0
  1418. GOTO ext
  1419. END IF
  1420. IF sys_autoupdate_member = 1 THEN
  1421. ////会员自动升级
  1422. IF uof_update_member(arg_cusid,arg_msg,arg_ifcommit) = 0 THEN
  1423. rslt = 0
  1424. GOTO ext
  1425. END IF
  1426. END IF
  1427. END IF
  1428. ext:
  1429. IF rslt = 0 THEN
  1430. ROLLBACK;
  1431. ELSEIF rslt = 1 AND arg_ifcommit THEN
  1432. COMMIT;
  1433. END IF
  1434. arg_msg = '客户资料,'+ arg_msg
  1435. RETURN rslt
  1436. end function
  1437. public function integer uof_update_member (long arg_cusid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  1438. Long ll_memberid
  1439. Dec ld_cusscore
  1440. SELECT memberid ,
  1441. score
  1442. INTO :ll_memberid,
  1443. :ld_cusscore
  1444. FROM u_cust
  1445. Where cusid = :arg_cusid;
  1446. IF sqlca.SQLCode <> 0 THEN
  1447. IF Pos(Lower(sqlca.SQLErrText),'more than') > 0 THEN
  1448. arg_msg = '查询客户会员类型失败,查询数据返回值多于一个'
  1449. ELSE
  1450. arg_msg = '查询客户会员类型失败,'+sqlca.SQLErrText
  1451. END IF
  1452. rslt = 0
  1453. GOTO ext
  1454. END IF
  1455. if ll_memberid = 0 then goto ext
  1456. Decimal ld_score[]
  1457. Long ld_memberid[]
  1458. long ld_Pricelistid[]
  1459. Long i = 1,NO_MXCHECK
  1460. DECLARE CUR_member CURSOR FOR
  1461. SELECT u_cust_member.updatescore,
  1462. u_cust_member.memberid,
  1463. u_cust_member.Pricelistid
  1464. FROM u_cust_member
  1465. Order By updatescore Desc;
  1466. OPEN CUR_member;
  1467. FETCH CUR_member INTO :ld_score[i],:ld_memberid[i],:ld_Pricelistid[i];
  1468. DO WHILE sqlca.SQLCode = 0
  1469. i++
  1470. FETCH CUR_member INTO :ld_score[i],:ld_memberid[i],:ld_Pricelistid[i];
  1471. LOOP
  1472. CLOSE CUR_member;
  1473. //检验明细是否读入完整
  1474. SELECT COUNT(*) INTO :NO_MXCHECK
  1475. FROM u_cust_member ;
  1476. IF sqlca.SQLCode <> 0 THEN
  1477. rslt = 0
  1478. arg_msg = "查询操作失败,会员类型数量"
  1479. GOTO ext
  1480. END IF
  1481. IF i <> (NO_MXCHECK+1) THEN
  1482. rslt = 0
  1483. arg_msg = "查询操作失败,会员类型数量"
  1484. GOTO ext
  1485. END IF
  1486. FOR i = 1 TO NO_MXCHECK
  1487. IF ld_score[i] > 0 AND ld_cusscore >= ld_score[i] THEN
  1488. UPDATE u_cust
  1489. SET memberid = :ld_memberid[i],
  1490. Pricelistid = :ld_Pricelistid[i]
  1491. Where u_cust.cusid = :arg_cusid;
  1492. IF sqlca.SQLCode <> 0 THEN
  1493. rslt = 0
  1494. arg_msg = "更新客户会员类型操作失败"
  1495. GOTO ext
  1496. END IF
  1497. EXIT
  1498. END IF
  1499. NEXT
  1500. ext:
  1501. IF rslt = 0 THEN
  1502. ROLLBACK;
  1503. ELSEIF rslt = 1 AND arg_ifcommit THEN
  1504. COMMIT;
  1505. END IF
  1506. arg_msg = '客户资料,'+ arg_msg
  1507. RETURN rslt
  1508. end function
  1509. public function integer uof_audit (long arg_cusid, string arg_emp, ref string arg_msg, boolean arg_ifcommit);Int li_flag
  1510. Int rslt = 1
  1511. Select flag
  1512. Into :li_flag
  1513. From u_cust
  1514. Where cusid = :arg_cusid;
  1515. If sqlca.SQLCode <> 0 Then
  1516. rslt = 0
  1517. arg_msg = '查询客户审核状态失败,'+sqlca.SQLErrText
  1518. Goto ext
  1519. End If
  1520. If li_flag <> 0 Then
  1521. rslt = 0
  1522. arg_msg = '客户不是在待审核状态,不能审核'
  1523. Goto ext
  1524. End If
  1525. Update u_cust
  1526. Set flag = 1 ,
  1527. auditemp = :arg_emp,
  1528. auditdate = getdate()
  1529. Where cusid = :arg_cusid
  1530. And flag = 0 ;
  1531. If sqlca.SQLCode = 0 Then
  1532. If sqlca.SQLNRows = 0 Then
  1533. rslt = 0
  1534. arg_msg = '客户正在审核,请刷新 '+sqlca.SQLErrText
  1535. Goto ext
  1536. End If
  1537. Else
  1538. rslt = 0
  1539. arg_msg = '客户审核失败 '+sqlca.SQLErrText
  1540. Goto ext
  1541. End If
  1542. ext:
  1543. If rslt = 0 Then
  1544. Rollback;
  1545. ElseIf rslt = 1 And arg_ifcommit Then
  1546. Commit;
  1547. End If
  1548. Return rslt
  1549. end function
  1550. public function integer uof_secaudit (long arg_cusid, string arg_emp, ref string arg_msg, boolean arg_ifcommit);Int li_flag
  1551. Int rslt = 1
  1552. Select flag
  1553. Into :li_flag
  1554. From u_cust
  1555. Where cusid = :arg_cusid;
  1556. If sqlca.SQLCode <> 0 Then
  1557. rslt = 0
  1558. arg_msg = '查询客户审核状态失败,'+sqlca.SQLErrText
  1559. Goto ext
  1560. End If
  1561. If li_flag <> 1 Then
  1562. rslt = 0
  1563. arg_msg = '客户不是在待终核状态,不能终审'
  1564. Goto ext
  1565. End If
  1566. Update u_cust
  1567. Set flag = 2 ,
  1568. secauditemp = :arg_emp,
  1569. secauditdate = getdate(),
  1570. state = 1,
  1571. pricelistflag = 1,
  1572. pricelistemp = :arg_emp,
  1573. pricelistdate = getdate()
  1574. Where cusid = :arg_cusid
  1575. And flag = 1 ;
  1576. If sqlca.SQLCode = 0 Then
  1577. If sqlca.SQLNRows = 0 Then
  1578. rslt = 0
  1579. arg_msg = '客户正在审核,请刷新 '+sqlca.SQLErrText
  1580. Goto ext
  1581. End If
  1582. Else
  1583. rslt = 0
  1584. arg_msg = '客户终审失败 '+sqlca.SQLErrText
  1585. Goto ext
  1586. End If
  1587. ext:
  1588. If rslt = 0 Then
  1589. Rollback;
  1590. ElseIf rslt = 1 And arg_ifcommit Then
  1591. Commit;
  1592. End If
  1593. Return rslt
  1594. end function
  1595. public function integer uof_c_secaudit (long arg_cusid, ref string arg_msg, boolean arg_ifcommit);Int li_flag
  1596. Int rslt = 1
  1597. datetime ld_nulldt
  1598. setnull(ld_nulldt)
  1599. Select flag
  1600. Into :li_flag
  1601. From u_cust
  1602. Where cusid = :arg_cusid;
  1603. If sqlca.SQLCode <> 0 Then
  1604. rslt = 0
  1605. arg_msg = '查询客户审核状态失败,'+sqlca.SQLErrText
  1606. Goto ext
  1607. End If
  1608. If li_flag <> 2 Then
  1609. rslt = 0
  1610. arg_msg = '客户不是在终审状态,不能撤终审'
  1611. Goto ext
  1612. End If
  1613. Update u_cust
  1614. Set flag = 1 ,
  1615. secauditemp = '',
  1616. secauditdate = :ld_nulldt,
  1617. state = 0,
  1618. pricelistflag = 0,
  1619. pricelistemp = '',
  1620. pricelistdate = :ld_nulldt
  1621. Where cusid = :arg_cusid
  1622. And flag = 2 ;
  1623. If sqlca.SQLCode = 0 Then
  1624. If sqlca.SQLNRows = 0 Then
  1625. rslt = 0
  1626. arg_msg = '客户正在撤审,请刷新 '+sqlca.SQLErrText
  1627. Goto ext
  1628. End If
  1629. Else
  1630. rslt = 0
  1631. arg_msg = '客户撤终审失败 '+sqlca.SQLErrText
  1632. Goto ext
  1633. End If
  1634. ext:
  1635. If rslt = 0 Then
  1636. Rollback;
  1637. ElseIf rslt = 1 And arg_ifcommit Then
  1638. Commit;
  1639. End If
  1640. Return rslt
  1641. end function
  1642. public function integer uof_c_audit (long arg_cusid, ref string arg_msg, boolean arg_ifcommit);Int li_flag
  1643. Int rslt = 1
  1644. DateTime ld_nulldt
  1645. SetNull(ld_nulldt)
  1646. Select flag
  1647. Into :li_flag
  1648. From u_cust
  1649. Where cusid = :arg_cusid;
  1650. If sqlca.SQLCode <> 0 Then
  1651. rslt = 0
  1652. arg_msg = '查询客户审核状态失败,'+sqlca.SQLErrText
  1653. Goto ext
  1654. End If
  1655. If li_flag <> 1 Then
  1656. rslt = 0
  1657. arg_msg = '客户不是待终审状态,不能撤初审'
  1658. Goto ext
  1659. End If
  1660. Update u_cust
  1661. Set flag = 0 ,
  1662. auditemp = '',
  1663. auditdate = :ld_nulldt
  1664. Where cusid = :arg_cusid
  1665. And flag = 1 ;
  1666. If sqlca.SQLCode = 0 Then
  1667. If sqlca.SQLNRows = 0 Then
  1668. rslt = 0
  1669. arg_msg = '客户正在撤审,请刷新 '+sqlca.SQLErrText
  1670. Goto ext
  1671. End If
  1672. Else
  1673. rslt = 0
  1674. arg_msg = '客户撤初审失败 '+sqlca.SQLErrText
  1675. Goto ext
  1676. End If
  1677. ext:
  1678. If rslt = 0 Then
  1679. Rollback;
  1680. ElseIf rslt = 1 And arg_ifcommit Then
  1681. Commit;
  1682. End If
  1683. Return rslt
  1684. end function
  1685. 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
  1686. String ls_cuscode
  1687. rslt = 1
  1688. IF arg_cusid <= 0 THEN
  1689. rslt = 0
  1690. arg_msg = '更新客户价格表失败,无效的客户ID:'+String(arg_cusid)
  1691. GOTO ext
  1692. END IF
  1693. SELECT cuscode
  1694. INTO :ls_cuscode
  1695. FROM u_cust
  1696. Where cusid = :arg_cusid;
  1697. IF sqlca.SQLCode <> 0 THEN
  1698. rslt = 0
  1699. arg_msg = '查询客户资料失败,ID:'+String(arg_cusid)
  1700. GOTO ext
  1701. END IF
  1702. UPDATE u_cust
  1703. SET pricelistid = :arg_pricelistid,
  1704. grade = :arg_grade,
  1705. rebate = :arg_rebate,
  1706. pmodemp = :arg_opemp,
  1707. pmoddate = getdate(),
  1708. exchangeid = :arg_exchangeid,
  1709. pricedscrp = :arg_pricedscrp
  1710. Where cusid = :arg_cusid;
  1711. IF sqlca.SQLCode = 0 THEN
  1712. IF sqlca.SQLNRows = 0 THEN
  1713. rslt = 0
  1714. arg_msg = '没有找到可更新的客户资料,ID:'+String(arg_cusid)+',编号:'+ls_cuscode
  1715. GOTO ext
  1716. END IF
  1717. ELSE
  1718. rslt = 0
  1719. arg_msg = '更新操作失败,客户ID:'+String(arg_cusid)+',编号:'+ls_cuscode
  1720. GOTO ext
  1721. END IF
  1722. ext:
  1723. IF rslt = 0 THEN
  1724. ROLLBACK;
  1725. ELSEIF rslt = 1 And arg_ifcommit THEN
  1726. COMMIT;
  1727. END IF
  1728. RETURN rslt
  1729. end function
  1730. 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
  1731. Long cnt,ll_interviewid
  1732. IF IsNull(arg_s_cust_interview.saler) THEN arg_s_cust_interview.saler = ''
  1733. IF IsNull(arg_s_cust_interview.interviewrep) THEN arg_s_cust_interview.interviewrep = ''
  1734. IF IsNull(arg_s_cust_interview.tele) THEN arg_s_cust_interview.tele = ''
  1735. IF IsNull(arg_s_cust_interview.interviewcontent) THEN arg_s_cust_interview.interviewcontent = ''
  1736. IF IsNull(arg_s_cust_interview.dscrp) THEN arg_s_cust_interview.dscrp = ''
  1737. IF IsNull(arg_s_cust_interview.cusid) THEN arg_s_cust_interview.cusid = 0
  1738. IF IsNull(arg_s_cust_interview.interviewid) THEN arg_s_cust_interview.interviewid = 0
  1739. IF IsNull(arg_s_cust_interview.amt) THEN arg_s_cust_interview.amt = 0
  1740. IF IsNull(arg_s_cust_interview.interviewway) THEN arg_s_cust_interview.interviewway = ''
  1741. IF IsNull(arg_s_cust_interview.interviewrslt) THEN arg_s_cust_interview.interviewrslt = ''
  1742. IF IsNull(arg_s_cust_interview.interviewform) THEN arg_s_cust_interview.interviewform = ''
  1743. IF IsNull(arg_s_cust_interview.custassess) THEN arg_s_cust_interview.custassess = ''
  1744. IF IsNull(arg_s_cust_interview.custview) THEN arg_s_cust_interview.custview = ''
  1745. IF IsNull(arg_s_cust_interview.interviewaddress) THEN arg_s_cust_interview.interviewaddress = ''
  1746. IF IsNull(arg_s_cust_interview.inputway) THEN arg_s_cust_interview.inputway = ''
  1747. IF arg_s_cust_interview.saler = '' THEN
  1748. arg_msg = '请输入业务员'
  1749. rslt = 0
  1750. GOTO ext
  1751. END IF
  1752. IF arg_s_cust_interview.interviewcontent = '' THEN
  1753. arg_msg = '请输入走访内容'
  1754. rslt = 0
  1755. GOTO ext
  1756. END IF
  1757. SELECT count(*) INTO :cnt
  1758. FROM u_cust
  1759. Where cusid = :arg_s_cust_interview.cusid;
  1760. IF sqlca.SQLCode <> 0 THEN
  1761. arg_msg = '查询客户资料失败,'+sqlca.SQLErrText
  1762. rslt = 0
  1763. GOTO ext
  1764. END IF
  1765. IF cnt = 0 THEN
  1766. arg_msg = '客户资料不存在或重复'
  1767. rslt = 0
  1768. GOTO ext
  1769. END IF
  1770. IF arg_s_cust_interview.interviewid = 0 THEN
  1771. ll_interviewid = f_sys_scidentity(0,"u_cust_interview","interviewid",arg_msg,True,id_sqlca)
  1772. IF ll_interviewid <= 0 THEN
  1773. rslt = 0
  1774. GOTO ext
  1775. END IF
  1776. INSERT INTO u_cust_interview
  1777. (interviewid,
  1778. cusid,
  1779. saler,
  1780. interviewdate,
  1781. interviewrep,
  1782. tele,
  1783. interviewtime,
  1784. interviewcontent,
  1785. dscrp,
  1786. amt,
  1787. opdate,
  1788. opemp,
  1789. interviewway,
  1790. interviewrslt,
  1791. interviewform,
  1792. custassess,
  1793. custview,
  1794. interviewaddress,
  1795. inputway)
  1796. VALUES(:ll_interviewid,
  1797. :arg_s_cust_interview.cusid,
  1798. :arg_s_cust_interview.saler,
  1799. :arg_s_cust_interview.interviewdate,
  1800. :arg_s_cust_interview.interviewrep,
  1801. :arg_s_cust_interview.tele,
  1802. :arg_s_cust_interview.interviewtime,
  1803. :arg_s_cust_interview.interviewcontent,
  1804. :arg_s_cust_interview.dscrp,
  1805. :arg_s_cust_interview.amt,
  1806. getdate(),
  1807. :arg_opemp,
  1808. :arg_s_cust_interview.interviewway,
  1809. :arg_s_cust_interview.interviewrslt,
  1810. :arg_s_cust_interview.interviewform,
  1811. :arg_s_cust_interview.custassess,
  1812. :arg_s_cust_interview.custview,
  1813. :arg_s_cust_interview.interviewaddress,
  1814. :arg_s_cust_interview.inputway);
  1815. IF sqlca.SQLCode <> 0 THEN
  1816. arg_msg = '建立客户走访失败,'+sqlca.SQLErrText
  1817. rslt = 0
  1818. GOTO ext
  1819. END IF
  1820. arg_s_cust_interview.interviewid = ll_interviewid
  1821. ELSE
  1822. UPDATE u_cust_interview
  1823. SET saler = :arg_s_cust_interview.saler,
  1824. interviewdate = :arg_s_cust_interview.interviewdate,
  1825. interviewrep = :arg_s_cust_interview.interviewrep,
  1826. tele = :arg_s_cust_interview.tele,
  1827. interviewtime = :arg_s_cust_interview.interviewtime,
  1828. interviewcontent = :arg_s_cust_interview.interviewcontent,
  1829. dscrp = :arg_s_cust_interview.dscrp,
  1830. amt = :arg_s_cust_interview.amt,
  1831. moddate = getdate(),
  1832. modemp = :arg_opemp,
  1833. interviewway = :arg_s_cust_interview.interviewway,
  1834. interviewrslt = :arg_s_cust_interview.interviewrslt,
  1835. interviewform = :arg_s_cust_interview.interviewform,
  1836. custassess = :arg_s_cust_interview.custassess,
  1837. custview = :arg_s_cust_interview.custview
  1838. WHERE interviewid = :arg_s_cust_interview.interviewid
  1839. And GETDATE() <= DATEADD(dd, :sys_option_interview_edit_day, opdate);
  1840. IF sqlca.SQLCode <> 0 THEN
  1841. arg_msg = '更新客户走访失败,'+sqlca.SQLErrText
  1842. rslt = 0
  1843. GOTO ext
  1844. END IF
  1845. IF sqlca.SQLNRows = 0 THEN
  1846. rslt = 0
  1847. arg_msg = '走访记录已超过修改时限,不能修改'
  1848. GOTO ext
  1849. END IF
  1850. END IF
  1851. ext:
  1852. IF rslt = 0 THEN
  1853. ROLLBACK;
  1854. ELSEIF rslt = 1 And arg_ifcommit THEN
  1855. COMMIT;
  1856. END IF
  1857. RETURN rslt
  1858. end function
  1859. on uo_cust.create
  1860. call super::create
  1861. TriggerEvent( this, "constructor" )
  1862. end on
  1863. on uo_cust.destroy
  1864. TriggerEvent( this, "destructor" )
  1865. call super::destroy
  1866. end on