$PBExportHeader$uo_saletask_ew.sru forward global type uo_saletask_ew from uo_saletask_spi end type end forward global type uo_saletask_ew from uo_saletask_spi end type global uo_saletask_ew uo_saletask_ew forward prototypes 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) public function integer uf_audit_saletask (long arg_scid, long arg_taskid, ref string arg_msg, boolean ifcommit) public function integer uf_saletask_ch (ref s_taobao_saletask_ch arg_task, ref string arg_msg) public function integer uof_getprice_saletask (s_saletask_import arg_s_import, ref decimal arg_price, ref decimal arg_rebate, ref string arg_msg) 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) public function integer wf_pricelist_ch (long arg_mtrlid, ref long arg_pricelistid, ref string arg_pricelistname, ref string arg_msg) public function integer wf_new_cust_p (s_saletask_import arg_import[], ref string arg_msg) public function integer uf_fill_taobao_saletask_info (ref s_saletask_import arg_mx, ref string arg_msg) end prototypes 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 uo_saletask obj_saletask obj_saletask = Create uo_saletask obj_saletask.commit_transaction = sqlca String im_ids = '' Long i FOR i = 1 To UpperBound(arg_bill.mx) IF i = 1 THEN im_ids = arg_bill.mx[i].im_id ELSE im_ids += ',' + arg_bill.mx[i].im_id END IF NEXT IF obj_saletask.newbegin(arg_scid,arg_msg) = 0 THEN rslt = 0 arg_msg = im_ids + '新建订单失败,' + arg_msg GOTO ext END IF obj_saletask.requiredate = arg_bill.mx[1].requiredate obj_saletask.assign_emp = arg_bill.mx[1].assign_emp //obj_saletask.upname = arg_bill.mx[1].upname obj_saletask.Kind = arg_bill.mx[1].typeid obj_saletask.cusid = arg_bill.mx[1].cusid obj_saletask.dscrp = arg_bill.mx[1].dscrp obj_saletask.dscrp2 = arg_bill.mx[1].dscrp2 obj_saletask.taskdate = arg_bill.mx[1].taskdate obj_saletask.banktypeid = arg_bill.mx[1].banktypeid obj_saletask.moneyid = arg_bill.mx[1].moneyid obj_saletask.damt = arg_bill.mx[1].damt obj_saletask.otheramt = arg_bill.mx[1].otheramt obj_saletask.relcode = arg_bill.mx[1].relcode obj_saletask.paytype = arg_bill.mx[1].paytype obj_saletask.freight = arg_bill.mx[1].freight obj_saletask.freight_tele = arg_bill.mx[1].freight_tele obj_saletask.cus_address = arg_bill.mx[1].cus_address obj_saletask.cus_tele = arg_bill.mx[1].cus_tele obj_saletask.cus_fax = arg_bill.mx[1].cus_fax obj_saletask.mrate = arg_bill.mx[1].mrate //obj_saletask.typeid = arg_bill.mx[1].typeid obj_saletask.rel_rep = arg_bill.mx[1].rel_rep //obj_saletask.Level = arg_bill.mx[1].Level obj_saletask.dscrp3 = arg_bill.mx[1].dscrp3 FOR i = 1 To UpperBound(arg_bill.mx) IF obj_saletask.acceptmx(arg_bill.mx[i].mtrlid,& arg_bill.mx[i].saleqty,& 0 /*orderqty*/ ,& 0 /*buyqty*/ ,& arg_bill.mx[i].enprice,& arg_bill.mx[i].rebate,& 0 /*planprice*/ ,& arg_bill.mx[i].mxdscrp,& arg_bill.mx[i].mtrlcode,& arg_bill.mx[i].status,& arg_bill.mx[i].woodcode,& arg_bill.mx[i].pcode,& arg_bill.mx[i].mtrlcuscode,& i,& 0 /*outtype*/ ,& arg_msg,& '' /*unit*/ ,& arg_bill.mx[i].taxrate /*rate*/ ,& '' /*formula*/ ,& 0 /*addqty*/ ,& arg_bill.mx[i].mxdscrp2,& 0 /*needwfjgqty*/,& '' /*plancode*/,& 0 /*tax*/) = 0 THEN rslt = 0 arg_msg = im_ids + '添加订单明细失败,' + arg_msg GOTO ext END IF NEXT s_saletask_itemmx s_item //费用项目 IF arg_bill.mx[1].post_fee <> 0 THEN s_item.printid = 1 s_item.itemid = arg_bill.mx[1].itemid s_item.amt = arg_bill.mx[1].post_fee s_item.amtyfh = 0 s_item.mxdscrp = '' s_item.itype = 1 IF obj_saletask.acceptmx_item(s_item, arg_msg) = 0 THEN rslt = 0 arg_msg = im_ids + '添加订单费用明细失败,' + arg_msg GOTO ext END IF END IF IF obj_saletask.savesubmit(publ_operator,arg_msg,False) <> 1 THEN rslt = 0 arg_msg = im_ids + '保存订单失败,' + arg_msg GOTO ext END IF IF obj_saletask.save_end(arg_msg,False) = 0 THEN //保存费用项目 rslt = 0 arg_msg = im_ids + '保存订单费用明细失败,' + arg_msg GOTO ext END IF arg_taskid = obj_saletask.taskid arg_taskcode = obj_saletask.taskcode ext: Destroy obj_saletask IF ifcommit THEN IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF END IF RETURN rslt end function public function integer uf_audit_saletask (long arg_scid, long arg_taskid, ref string arg_msg, boolean ifcommit);int rslt = 1 uo_saletask obj_saletask obj_saletask = Create uo_saletask obj_saletask.commit_transaction = sqlca IF obj_saletask.salepermit(arg_scid, arg_taskid, publ_operator, arg_msg, False) <> 1 THEN rslt = 0 GOTO ext END IF //IF sys_option_saletask_secaudit = 1 THEN IF obj_saletask.propermit(arg_scid, arg_taskid, publ_operator, arg_msg, False) <> 1 THEN rslt = 0 GOTO ext END IF //END IF ext: Destroy obj_saletask IF ifcommit THEN IF rslt = 1 THEN COMMIT; ELSE ROLLBACK; END IF END IF return rslt end function public function integer uf_saletask_ch (ref s_taobao_saletask_ch arg_task, ref string arg_msg);Int rslt = 1 arg_task.taskid = 0 IF Not IsValid(w_saletask_ch) THEN s_edit_index_tran s_ch_tran //传递参数使用 s_ch_tran.if_retrieve_all = False //是否一次RETRIEVE所有行 s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式 s_ch_tran.arg_pkid = 0 //目标定位PKID (备用) s_ch_tran.b_long = arg_task.scid s_ch_tran.c_long = arg_task.cusid //查询列(物料编码)部分内容,用于初步筛选 s_ch_tran.arg_string_code = Upper(Trim(arg_task.taskcode)) OpenWithParm(w_saletask_ch,s_ch_tran) //调用 s_saletask_ch S_INSCUST S_INSCUST = Message.PowerObjectParm //接受返回结构 IF S_INSCUST.taskid > 0 THEN //正常返回值则可以取以下值 // TODO: 企精灵没有字段返回订单金额 arg_task.taskcode = S_INSCUST.taskcode arg_task.damt = S_INSCUST.damt arg_task.taskid = S_INSCUST.taskid // arg_task.billamt = S_INSCUST.billamt // arg_task.takeamt = S_INSCUST.takeamt // arg_task.noamt = S_INSCUST.noamt arg_task.moneyid = S_INSCUST.moneyid // arg_task.banktypeid = S_INSCUST.banktypeid // arg_task.takedamt = S_INSCUST.takedamt END IF END IF RETURN rslt end function 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 decimal ll_rate 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) IF rslt > 0 THEN ELSE arg_price = 0 arg_rebate = 0 END IF RETURN rslt end function 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 s_edit_index_tran s_tran s_tran.if_retrieve_all = True s_tran.work_mode = 1 OpenWithParm(w_itemdef_ch, s_tran) s_itemdef s_rslt s_rslt = Message.PowerObjectParm IF s_rslt.itemid <= 0 THEN rslt = 0 GOTO ext END IF arg_itemid = s_rslt.itemid arg_itemcode = s_rslt.itemcode arg_itemname = s_rslt.itemname arg_itemtype = s_rslt.itemtype ext: RETURN rslt end function public function integer wf_pricelist_ch (long arg_mtrlid, ref long arg_pricelistid, ref string arg_pricelistname, ref string arg_msg);Int rslt = 1 Open(w_sale_price_list_ch) s_pricelist_ch s_rslt s_rslt = Message.PowerObjectParm IF s_rslt.pricelistid <= 0 THEN rslt = 0 GOTO ext END IF arg_pricelistid = s_rslt.pricelistid arg_pricelistname = s_rslt.pricelistname ext: RETURN rslt end function public function integer wf_new_cust_p (s_saletask_import arg_import[], ref string arg_msg);Long i s_define_import_parm s_tran FOR i = 1 To UpperBound(arg_import) s_tran.cust_arr[i].Name = arg_import[i].cusname s_tran.cust_arr[i].cuscode = arg_import[i].cuscode s_tran.cust_arr[i].custype = arg_import[i].assign_emp s_tran.cust_arr[i].upname = arg_import[i].upname s_tran.cust_arr[i].rep = arg_import[i].rel_rep s_tran.cust_arr[i].tele = arg_import[i].cus_tele s_tran.cust_arr[i].tele1 = '' s_tran.cust_arr[i].faxno = arg_import[i].cus_fax s_tran.cust_arr[i].Address = arg_import[i].cus_address s_tran.cust_arr[i].freight = arg_import[i].freight s_tran.cust_arr[i].freight_tele = arg_import[i].freight_tele // s_tran.cust_arr[i].moneyid = arg_import[i].moneyid s_tran.cust_arr[i].banktypeid = arg_import[i].banktypeid NEXT OpenWithParm(w_define_response, s_tran) RETURN 1 end function public function integer uf_fill_taobao_saletask_info (ref s_saletask_import arg_mx, ref string arg_msg);Int rslt = 1 String ls_im_userid SELECT im_userid INTO :ls_im_userid FROM eb_saletask_import Where im_type = 5 And im_id = :arg_mx.im_id; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询淘宝订单所属账号失败,' + sqlca.SQLErrText GOTO ext END IF SELECT scid, dateadd(dd, requiredays, getdate()), assign_emp, upname, cusid, banktypeid, moneyid, mrate, typeid, level, paytype, itemid INTO :arg_mx.scid, :arg_mx.requiredate, :arg_mx.assign_emp, :arg_mx.upname, :arg_mx.cusid, :arg_mx.banktypeid, :arg_mx.moneyid, :arg_mx.mrate, :arg_mx.typeid, :arg_mx.level, :arg_mx.paytype, :arg_mx.itemid FROM eb_user Where im_type = 5 And im_userid = :ls_im_userid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询淘宝账号信息失败,' + sqlca.SQLErrText GOTO ext END IF ext: RETURN rslt end function on uo_saletask_ew.create call super::create end on on uo_saletask_ew.destroy call super::destroy end on