uo_saletask_ew.sru 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369
  1. $PBExportHeader$uo_saletask_ew.sru
  2. forward
  3. global type uo_saletask_ew from uo_saletask_spi
  4. end type
  5. end forward
  6. global type uo_saletask_ew from uo_saletask_spi
  7. end type
  8. global uo_saletask_ew uo_saletask_ew
  9. forward prototypes
  10. public function integer uf_save_saletask (long arg_scid, s_saletask_import_arr arg_bill, ref long arg_taskid, ref string arg_taskcode, ref string arg_msg, boolean ifcommit)
  11. public function integer uf_audit_saletask (long arg_scid, long arg_taskid, ref string arg_msg, boolean ifcommit)
  12. public function integer uf_saletask_ch (ref s_taobao_saletask_ch arg_task, ref string arg_msg)
  13. public function integer uof_getprice_saletask (s_saletask_import arg_s_import, ref decimal arg_price, ref decimal arg_rebate, ref string arg_msg)
  14. public function integer wf_itemdef_ch (ref long arg_itemid, ref string arg_itemcode, ref string arg_itemname, ref string arg_itemtype, ref string arg_msg)
  15. public function integer wf_pricelist_ch (long arg_mtrlid, ref long arg_pricelistid, ref string arg_pricelistname, ref string arg_msg)
  16. public function integer wf_new_cust_p (s_saletask_import arg_import[], ref string arg_msg)
  17. public function integer uf_fill_taobao_saletask_info (ref s_saletask_import arg_mx, ref string arg_msg)
  18. end prototypes
  19. public function integer uf_save_saletask (long arg_scid, s_saletask_import_arr arg_bill, ref long arg_taskid, ref string arg_taskcode, ref string arg_msg, boolean ifcommit);Int rslt = 1
  20. uo_saletask obj_saletask
  21. obj_saletask = Create uo_saletask
  22. obj_saletask.commit_transaction = sqlca
  23. String im_ids = ''
  24. Long i
  25. FOR i = 1 To UpperBound(arg_bill.mx)
  26. IF i = 1 THEN
  27. im_ids = arg_bill.mx[i].im_id
  28. ELSE
  29. im_ids += ',' + arg_bill.mx[i].im_id
  30. END IF
  31. NEXT
  32. IF obj_saletask.newbegin(arg_scid,arg_msg) = 0 THEN
  33. rslt = 0
  34. arg_msg = im_ids + '新建订单失败,' + arg_msg
  35. GOTO ext
  36. END IF
  37. obj_saletask.requiredate = arg_bill.mx[1].requiredate
  38. obj_saletask.assign_emp = arg_bill.mx[1].assign_emp
  39. //obj_saletask.upname = arg_bill.mx[1].upname
  40. obj_saletask.Kind = arg_bill.mx[1].typeid
  41. obj_saletask.cusid = arg_bill.mx[1].cusid
  42. obj_saletask.dscrp = arg_bill.mx[1].dscrp
  43. obj_saletask.dscrp2 = arg_bill.mx[1].dscrp2
  44. obj_saletask.taskdate = arg_bill.mx[1].taskdate
  45. obj_saletask.banktypeid = arg_bill.mx[1].banktypeid
  46. obj_saletask.moneyid = arg_bill.mx[1].moneyid
  47. obj_saletask.damt = arg_bill.mx[1].damt
  48. obj_saletask.otheramt = arg_bill.mx[1].otheramt
  49. obj_saletask.relcode = arg_bill.mx[1].relcode
  50. obj_saletask.paytype = arg_bill.mx[1].paytype
  51. obj_saletask.freight = arg_bill.mx[1].freight
  52. obj_saletask.freight_tele = arg_bill.mx[1].freight_tele
  53. obj_saletask.cus_address = arg_bill.mx[1].cus_address
  54. obj_saletask.cus_tele = arg_bill.mx[1].cus_tele
  55. obj_saletask.cus_fax = arg_bill.mx[1].cus_fax
  56. obj_saletask.mrate = arg_bill.mx[1].mrate
  57. //obj_saletask.typeid = arg_bill.mx[1].typeid
  58. obj_saletask.rel_rep = arg_bill.mx[1].rel_rep
  59. //obj_saletask.Level = arg_bill.mx[1].Level
  60. obj_saletask.dscrp3 = arg_bill.mx[1].dscrp3
  61. FOR i = 1 To UpperBound(arg_bill.mx)
  62. IF obj_saletask.acceptmx(arg_bill.mx[i].mtrlid,&
  63. arg_bill.mx[i].saleqty,&
  64. 0 /*orderqty*/ ,&
  65. 0 /*buyqty*/ ,&
  66. arg_bill.mx[i].enprice,&
  67. arg_bill.mx[i].rebate,&
  68. 0 /*planprice*/ ,&
  69. arg_bill.mx[i].mxdscrp,&
  70. arg_bill.mx[i].mtrlcode,&
  71. arg_bill.mx[i].status,&
  72. arg_bill.mx[i].woodcode,&
  73. arg_bill.mx[i].pcode,&
  74. arg_bill.mx[i].mtrlcuscode,&
  75. i,&
  76. 0 /*outtype*/ ,&
  77. arg_msg,&
  78. '' /*unit*/ ,&
  79. arg_bill.mx[i].taxrate /*rate*/ ,&
  80. '' /*formula*/ ,&
  81. 0 /*addqty*/ ,&
  82. arg_bill.mx[i].mxdscrp2,&
  83. 0 /*needwfjgqty*/,&
  84. '' /*plancode*/,&
  85. 0 /*tax*/) = 0 THEN
  86. rslt = 0
  87. arg_msg = im_ids + '添加订单明细失败,' + arg_msg
  88. GOTO ext
  89. END IF
  90. NEXT
  91. s_saletask_itemmx s_item //费用项目
  92. IF arg_bill.mx[1].post_fee <> 0 THEN
  93. s_item.printid = 1
  94. s_item.itemid = arg_bill.mx[1].itemid
  95. s_item.amt = arg_bill.mx[1].post_fee
  96. s_item.amtyfh = 0
  97. s_item.mxdscrp = ''
  98. s_item.itype = 1
  99. IF obj_saletask.acceptmx_item(s_item, arg_msg) = 0 THEN
  100. rslt = 0
  101. arg_msg = im_ids + '添加订单费用明细失败,' + arg_msg
  102. GOTO ext
  103. END IF
  104. END IF
  105. IF obj_saletask.savesubmit(publ_operator,arg_msg,False) <> 1 THEN
  106. rslt = 0
  107. arg_msg = im_ids + '保存订单失败,' + arg_msg
  108. GOTO ext
  109. END IF
  110. IF obj_saletask.save_end(arg_msg,False) = 0 THEN //保存费用项目
  111. rslt = 0
  112. arg_msg = im_ids + '保存订单费用明细失败,' + arg_msg
  113. GOTO ext
  114. END IF
  115. arg_taskid = obj_saletask.taskid
  116. arg_taskcode = obj_saletask.taskcode
  117. ext:
  118. Destroy obj_saletask
  119. IF ifcommit THEN
  120. IF rslt = 1 THEN
  121. COMMIT;
  122. ELSE
  123. ROLLBACK;
  124. END IF
  125. END IF
  126. RETURN rslt
  127. end function
  128. public function integer uf_audit_saletask (long arg_scid, long arg_taskid, ref string arg_msg, boolean ifcommit);int rslt = 1
  129. uo_saletask obj_saletask
  130. obj_saletask = Create uo_saletask
  131. obj_saletask.commit_transaction = sqlca
  132. IF obj_saletask.salepermit(arg_scid, arg_taskid, publ_operator, arg_msg, False) <> 1 THEN
  133. rslt = 0
  134. GOTO ext
  135. END IF
  136. //IF sys_option_saletask_secaudit = 1 THEN
  137. IF obj_saletask.propermit(arg_scid, arg_taskid, publ_operator, arg_msg, False) <> 1 THEN
  138. rslt = 0
  139. GOTO ext
  140. END IF
  141. //END IF
  142. ext:
  143. Destroy obj_saletask
  144. IF ifcommit THEN
  145. IF rslt = 1 THEN
  146. COMMIT;
  147. ELSE
  148. ROLLBACK;
  149. END IF
  150. END IF
  151. return rslt
  152. end function
  153. public function integer uf_saletask_ch (ref s_taobao_saletask_ch arg_task, ref string arg_msg);Int rslt = 1
  154. arg_task.taskid = 0
  155. IF Not IsValid(w_saletask_ch) THEN
  156. s_edit_index_tran s_ch_tran //传递参数使用
  157. s_ch_tran.if_retrieve_all = False //是否一次RETRIEVE所有行
  158. s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
  159. s_ch_tran.arg_pkid = 0 //目标定位PKID (备用)
  160. s_ch_tran.b_long = arg_task.scid
  161. s_ch_tran.c_long = arg_task.cusid
  162. //查询列(物料编码)部分内容,用于初步筛选
  163. s_ch_tran.arg_string_code = Upper(Trim(arg_task.taskcode))
  164. OpenWithParm(w_saletask_ch,s_ch_tran) //调用
  165. s_saletask_ch S_INSCUST
  166. S_INSCUST = Message.PowerObjectParm //接受返回结构
  167. IF S_INSCUST.taskid > 0 THEN //正常返回值则可以取以下值
  168. // TODO: 企精灵没有字段返回订单金额
  169. arg_task.taskcode = S_INSCUST.taskcode
  170. arg_task.damt = S_INSCUST.damt
  171. arg_task.taskid = S_INSCUST.taskid
  172. // arg_task.billamt = S_INSCUST.billamt
  173. // arg_task.takeamt = S_INSCUST.takeamt
  174. // arg_task.noamt = S_INSCUST.noamt
  175. arg_task.moneyid = S_INSCUST.moneyid
  176. // arg_task.banktypeid = S_INSCUST.banktypeid
  177. // arg_task.takedamt = S_INSCUST.takedamt
  178. END IF
  179. END IF
  180. RETURN rslt
  181. end function
  182. public function integer uof_getprice_saletask (s_saletask_import arg_s_import, ref decimal arg_price, ref decimal arg_rebate, ref string arg_msg);Int rslt = 1
  183. decimal ll_rate
  184. rslt = f_getmtrlcusprice(arg_s_import.moneyid, arg_s_import.mtrlid, arg_s_import.cusid, arg_s_import.unit, arg_s_import.woodcode, arg_s_import.status, arg_s_import.pcode, 0, arg_price, arg_rebate,ll_rate, arg_msg)
  185. IF rslt > 0 THEN
  186. ELSE
  187. arg_price = 0
  188. arg_rebate = 0
  189. END IF
  190. RETURN rslt
  191. end function
  192. public function integer wf_itemdef_ch (ref long arg_itemid, ref string arg_itemcode, ref string arg_itemname, ref string arg_itemtype, ref string arg_msg);Int rslt = 1
  193. s_edit_index_tran s_tran
  194. s_tran.if_retrieve_all = True
  195. s_tran.work_mode = 1
  196. OpenWithParm(w_itemdef_ch, s_tran)
  197. s_itemdef s_rslt
  198. s_rslt = Message.PowerObjectParm
  199. IF s_rslt.itemid <= 0 THEN
  200. rslt = 0
  201. GOTO ext
  202. END IF
  203. arg_itemid = s_rslt.itemid
  204. arg_itemcode = s_rslt.itemcode
  205. arg_itemname = s_rslt.itemname
  206. arg_itemtype = s_rslt.itemtype
  207. ext:
  208. RETURN rslt
  209. end function
  210. public function integer wf_pricelist_ch (long arg_mtrlid, ref long arg_pricelistid, ref string arg_pricelistname, ref string arg_msg);Int rslt = 1
  211. Open(w_sale_price_list_ch)
  212. s_pricelist_ch s_rslt
  213. s_rslt = Message.PowerObjectParm
  214. IF s_rslt.pricelistid <= 0 THEN
  215. rslt = 0
  216. GOTO ext
  217. END IF
  218. arg_pricelistid = s_rslt.pricelistid
  219. arg_pricelistname = s_rslt.pricelistname
  220. ext:
  221. RETURN rslt
  222. end function
  223. public function integer wf_new_cust_p (s_saletask_import arg_import[], ref string arg_msg);Long i
  224. s_define_import_parm s_tran
  225. FOR i = 1 To UpperBound(arg_import)
  226. s_tran.cust_arr[i].Name = arg_import[i].cusname
  227. s_tran.cust_arr[i].cuscode = arg_import[i].cuscode
  228. s_tran.cust_arr[i].custype = arg_import[i].assign_emp
  229. s_tran.cust_arr[i].upname = arg_import[i].upname
  230. s_tran.cust_arr[i].rep = arg_import[i].rel_rep
  231. s_tran.cust_arr[i].tele = arg_import[i].cus_tele
  232. s_tran.cust_arr[i].tele1 = ''
  233. s_tran.cust_arr[i].faxno = arg_import[i].cus_fax
  234. s_tran.cust_arr[i].Address = arg_import[i].cus_address
  235. s_tran.cust_arr[i].freight = arg_import[i].freight
  236. s_tran.cust_arr[i].freight_tele = arg_import[i].freight_tele
  237. // s_tran.cust_arr[i].moneyid = arg_import[i].moneyid
  238. s_tran.cust_arr[i].banktypeid = arg_import[i].banktypeid
  239. NEXT
  240. OpenWithParm(w_define_response, s_tran)
  241. RETURN 1
  242. end function
  243. public function integer uf_fill_taobao_saletask_info (ref s_saletask_import arg_mx, ref string arg_msg);Int rslt = 1
  244. String ls_im_userid
  245. SELECT im_userid
  246. INTO :ls_im_userid
  247. FROM eb_saletask_import
  248. Where im_type = 5 And im_id = :arg_mx.im_id;
  249. IF sqlca.SQLCode <> 0 THEN
  250. rslt = 0
  251. arg_msg = '查询淘宝订单所属账号失败,' + sqlca.SQLErrText
  252. GOTO ext
  253. END IF
  254. SELECT scid,
  255. dateadd(dd, requiredays, getdate()),
  256. assign_emp,
  257. upname,
  258. cusid,
  259. banktypeid,
  260. moneyid,
  261. mrate,
  262. typeid,
  263. level,
  264. paytype,
  265. itemid
  266. INTO :arg_mx.scid,
  267. :arg_mx.requiredate,
  268. :arg_mx.assign_emp,
  269. :arg_mx.upname,
  270. :arg_mx.cusid,
  271. :arg_mx.banktypeid,
  272. :arg_mx.moneyid,
  273. :arg_mx.mrate,
  274. :arg_mx.typeid,
  275. :arg_mx.level,
  276. :arg_mx.paytype,
  277. :arg_mx.itemid
  278. FROM eb_user
  279. Where im_type = 5 And im_userid = :ls_im_userid;
  280. IF sqlca.SQLCode <> 0 THEN
  281. rslt = 0
  282. arg_msg = '查询淘宝账号信息失败,' + sqlca.SQLErrText
  283. GOTO ext
  284. END IF
  285. ext:
  286. RETURN rslt
  287. end function
  288. on uo_saletask_ew.create
  289. call super::create
  290. end on
  291. on uo_saletask_ew.destroy
  292. call super::destroy
  293. end on