123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511 |
- $PBExportHeader$uo_spring_send.sru
- forward
- global type uo_spring_send from nonvisualobject
- end type
- end forward
- global type uo_spring_send from nonvisualobject
- end type
- global uo_spring_send uo_spring_send
- type variables
- Transaction commit_transaction //数据commit事务
- end variables
- forward prototypes
- public function long uf_sendnow (long arg_sendwayid, long arg_revtype, long arg_revid, string arg_revname, string arg_revrep, string arg_revphone, string arg_sendmsg, ref string arg_msg)
- public function long uf_sendat (long arg_sendwayid, long arg_revtype, long arg_revid, string arg_revname, string arg_revrep, string arg_revphone, string arg_sendmsg, datetime arg_sendtime, ref string arg_msg)
- public function long uf_new_send (long arg_sendwayid, long arg_revtype, long arg_revid, string arg_revname, string arg_revrep, string arg_revphone, string arg_sendmsg, datetime arg_sendtime, long arg_empid, string arg_empname, ref string arg_msg)
- public function integer uf_getinfo (long arg_sendid, ref s_spring_send arg_s_send, ref string arg_msg)
- public function integer uf_save (ref s_spring_send s_send, ref string arg_msg)
- public function integer uf_getinfo_withmx (long arg_sendid, ref s_spring_send arg_s_send, ref string arg_msg)
- public function integer uf_del (long arg_sendid, ref string arg_msg, boolean if_commit)
- end prototypes
- public function long uf_sendnow (long arg_sendwayid, long arg_revtype, long arg_revid, string arg_revname, string arg_revrep, string arg_revphone, string arg_sendmsg, ref string arg_msg);DateTime dt_sertime
- SELECT TOP 1 GETDATE()
- INTO :dt_sertime
- From u_user Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- arg_msg = '查询当前时间失败,' + commit_transaction.SQLErrText
- RETURN 0
- END IF
- RETURN uf_new_send(arg_sendwayid, arg_revtype, arg_revid, arg_revname, arg_revrep, arg_revphone, arg_sendmsg, dt_sertime, sys_empid, publ_operator, arg_msg)
- end function
- public function long uf_sendat (long arg_sendwayid, long arg_revtype, long arg_revid, string arg_revname, string arg_revrep, string arg_revphone, string arg_sendmsg, datetime arg_sendtime, ref string arg_msg);
- RETURN uf_new_send(arg_sendwayid, arg_revtype, arg_revid, arg_revname, arg_revrep, arg_revphone, arg_sendmsg, arg_sendtime, sys_empid, publ_operator, arg_msg)
- end function
- public function long uf_new_send (long arg_sendwayid, long arg_revtype, long arg_revid, string arg_revname, string arg_revrep, string arg_revphone, string arg_sendmsg, datetime arg_sendtime, long arg_empid, string arg_empname, ref string arg_msg);//====================================================================
- // 事件: uo_spring_send.uf_new_send()
- //--------------------------------------------------------------------
- // 描述: 添加到短信发送序列
- //--------------------------------------------------------------------
- // 参数:
- // value long arg_sendwayid 短信通道
- // value long arg_revtype 对方身份(0,1客户,2供应商,3员工)
- // value long arg_revid 对方ID
- // value string arg_revname 对方公司名
- // value string arg_revrep 对方名字
- // value string arg_revphone 对方手机
- // value string arg_sendmsg 内容
- // value datetime arg_sendtime 发送时间
- // value long arg_empid 发送者empid
- // value string arg_empname 发送者名字
- // reference string arg_msg 错误信息
- //--------------------------------------------------------------------
- // 返回: long 发送序列ID
- //--------------------------------------------------------------------
- // 作者: lwl 日期: 2012年01月12日
- //--------------------------------------------------------------------
- // LONGJOE
- //--------------------------------------------------------------------
- // 修改历史:
- //
- //====================================================================
- Long rslt = 1
- s_spring_send s_send
- s_send.sendway = arg_sendwayid
- s_send.msg = arg_sendmsg
- s_send.sendtime = arg_sendtime
- s_send.empid = arg_empid
- s_send.empname = arg_empname
- s_send.sendflag = 0
- s_send.mx[1].revtype = arg_revtype
- s_send.mx[1].revid = arg_revid
- s_send.mx[1].revname = arg_revname
- s_send.mx[1].revrep = arg_revrep
- s_send.mx[1].revphone = arg_revphone
- IF uf_save(Ref s_send, Ref arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- rslt = s_send.sendid
- //Long ll_cnt
- //SELECT COUNT(0)
- // INTO :ll_cnt
- // FROM u_spring_sendway
- // Where sendwayid = :arg_sendwayid Using commit_transaction;
- //IF commit_transaction.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '查询短信通道失败,' + commit_transaction.SQLErrText
- // GOTO ext
- //END IF
- //
- //IF ll_cnt = 0 THEN
- // rslt = 0
- // arg_msg = '短信通道不存在,ID:' + String(arg_sendwayid)
- // GOTO ext
- //END IF
- //
- //Long ll_sendid
- //ll_sendid = f_sys_scidentity(0,"u_spring_send","Sendid",arg_msg,True,id_sqlca)
- //IF ll_sendid <= 0 THEN
- // rslt = 0
- // GOTO ext
- //END IF
- //
- //INSERT INTO u_spring_send(Sendid,
- // msg,
- // empid,
- // sendtime,
- // sendway,
- // empname)
- // VALUES(:ll_sendid,
- // :arg_sendmsg,
- // :arg_empid,
- // :arg_sendtime,
- // :arg_sendwayid,
- // :arg_empname) Using commit_transaction;
- //IF commit_transaction.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '插入待发短信失败,' + commit_transaction.SQLErrText
- // GOTO ext
- //END IF
- //
- //INSERT INTO u_spring_sendmx(sendid,
- // printid,
- // revtype,
- // revid,
- // revname,
- // revrep,
- // revphone)
- // VALUES(:ll_sendid,
- // 1,
- // :arg_revtype,
- // :arg_revid,
- // :arg_revname,
- // :arg_revrep,
- // :arg_revphone) Using commit_transaction;
- //IF commit_transaction.SQLCode <> 0 THEN
- // rslt = 0
- // arg_msg = '插入接收人失败,' + commit_transaction.SQLErrText
- // GOTO ext
- //END IF
- //
- //rslt = ll_sendid
- ext:
- IF rslt = 0 THEN
- ROLLBACK Using commit_transaction;
- ELSE
- COMMIT Using commit_transaction;
- END IF
- RETURN rslt
- end function
- public function integer uf_getinfo (long arg_sendid, ref s_spring_send arg_s_send, ref string arg_msg);Int rslt = 1
- Long ll_cnt
- SELECT COUNT(0)
- INTO :ll_cnt
- FROM u_spring_send
- WHERE sendid = :arg_sendid
- Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询短信失败,' + commit_transaction.SQLErrText
- GOTO ext
- END IF
- IF ll_cnt = 0 THEN
- rslt = 0
- arg_msg = '短信已经被删除'
- GOTO ext
- END IF
- SELECT msg,
- sys_changetime,
- sendflag,
- empid,
- sendtime,
- errtime,
- errtext,
- sendway,
- empname
- INTO :arg_s_send.msg,
- :arg_s_send.sys_changetime,
- :arg_s_send.sendflag,
- :arg_s_send.empid,
- :arg_s_send.sendtime,
- :arg_s_send.errtime,
- :arg_s_send.errtext,
- :arg_s_send.sendway,
- :arg_s_send.empname
- FROM u_spring_send
- WHERE sendid = :arg_sendid
- Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询短信失败,' + commit_transaction.SQLErrText
- GOTO ext
- END IF
- arg_s_send.sendid = arg_sendid
- ext:
- RETURN rslt
- end function
- public function integer uf_save (ref s_spring_send s_send, ref string arg_msg);Int rslt = 1
- Long ll_cnt
- Long ll_i
- Long ll_sendid
- SELECT COUNT(0)
- INTO :ll_cnt
- FROM u_spring_sendway
- Where sendwayid = :s_send.sendway Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询短信通道失败,' + commit_transaction.SQLErrText
- GOTO ext
- END IF
- IF ll_cnt = 0 THEN
- rslt = 0
- arg_msg = '短信通道不存在,ID:' + String(s_send.sendway)
- GOTO ext
- END IF
- IF s_send.sendflag = 0 And UpperBound(s_send.mx) <= 0 THEN
- rslt = 0
- arg_msg = '待发短信没有接收号码,不能发送'
- GOTO ext
- END IF
- s_send.empid = sys_empid
- s_send.empname = publ_operator
- IF s_send.sendid = 0 THEN
- ll_sendid = f_sys_scidentity(0,"u_spring_send","Sendid",arg_msg,True,id_sqlca)
- IF ll_sendid <= 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- INSERT INTO u_spring_send(Sendid,
- msg,
- empid,
- sendtime,
- sendway,
- empname,
- sendflag)
- VALUES(:ll_sendid,
- :s_send.msg,
- :s_send.empid,
- :s_send.sendtime,
- :s_send.sendway,
- :s_send.empname,
- :s_send.sendflag) Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '插入待发短信失败,' + commit_transaction.SQLErrText
- GOTO ext
- END IF
-
- FOR ll_i = 1 To UpperBound(s_send.mx)
- s_send.mx[ll_i].revname = Trim(s_send.mx[ll_i].revname)
- s_send.mx[ll_i].revrep = Trim(s_send.mx[ll_i].revrep)
- s_send.mx[ll_i].revphone = Trim(s_send.mx[ll_i].revphone)
-
- IF lena(s_send.mx[ll_i].revname) > 500 THEN
- rslt = 0
- arg_msg = '第' + String(ll_i) + '行,公司名大于500字节'
- GOTO ext
- END IF
-
- IF lena(s_send.mx[ll_i].revrep) > 30 THEN
- rslt = 0
- arg_msg = '第' + String(ll_i) + '行,联系人名大于30字节'
- GOTO ext
- END IF
-
- IF lena(s_send.mx[ll_i].revphone) > 20 THEN
- rslt = 0
- arg_msg = '第' + String(ll_i) + '行,电话号码大于20字节'
- GOTO ext
- END IF
-
- INSERT INTO u_spring_sendmx(sendid,
- printid,
- revtype,
- revid,
- revname,
- revrep,
- revphone)
- VALUES(:ll_sendid,
- :ll_i,
- :s_send.mx[ll_i].revtype,
- :s_send.mx[ll_i].revid,
- :s_send.mx[ll_i].revname,
- :s_send.mx[ll_i].revrep,
- :s_send.mx[ll_i].revphone) Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '插入待发短信明细失败,' + commit_transaction.SQLErrText
- GOTO ext
- END IF
-
- s_send.mx[ll_i].sendid = ll_sendid
- s_send.mx[ll_i].printid = ll_i
-
- NEXT
-
- s_send.sendid = ll_sendid
-
- ELSE
-
- UPDATE u_spring_send
- SET msg = :s_send.msg,
- empid = :s_send.empid,
- sendtime = :s_send.sendtime,
- sendway = :s_send.sendway,
- empname = :s_send.empname,
- sendflag = :s_send.sendflag
- Where sendid = :s_send.sendid Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新待发短信失败,' + commit_transaction.SQLErrText
- GOTO ext
- END IF
-
- IF commit_transaction.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = '待发短信已被删除,不能保存'
- GOTO ext
- END IF
-
- DELETE From u_spring_sendmx Where sendid = :s_send.sendid Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '删除待发短信旧明细失败,' + commit_transaction.SQLErrText
- GOTO ext
- END IF
-
- FOR ll_i = 1 To UpperBound(s_send.mx)
- s_send.mx[ll_i].revname = Trim(s_send.mx[ll_i].revname)
- s_send.mx[ll_i].revrep = Trim(s_send.mx[ll_i].revrep)
- s_send.mx[ll_i].revphone = Trim(s_send.mx[ll_i].revphone)
-
- IF lena(s_send.mx[ll_i].revname) > 500 THEN
- rslt = 0
- arg_msg = '第' + String(ll_i) + '行,公司名大于500字节'
- GOTO ext
- END IF
-
- IF lena(s_send.mx[ll_i].revrep) > 30 THEN
- rslt = 0
- arg_msg = '第' + String(ll_i) + '行,联系人名大于30字节'
- GOTO ext
- END IF
-
- IF lena(s_send.mx[ll_i].revphone) > 20 THEN
- rslt = 0
- arg_msg = '第' + String(ll_i) + '行,电话号码大于20字节'
- GOTO ext
- END IF
- INSERT INTO u_spring_sendmx(sendid,
- printid,
- revtype,
- revid,
- revname,
- revrep,
- revphone)
- VALUES(:s_send.sendid,
- :ll_i,
- :s_send.mx[ll_i].revtype,
- :s_send.mx[ll_i].revid,
- :s_send.mx[ll_i].revname,
- :s_send.mx[ll_i].revrep,
- :s_send.mx[ll_i].revphone) Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '插入待发短信明细失败,' + commit_transaction.SQLErrText
- GOTO ext
- END IF
-
- s_send.mx[ll_i].sendid = s_send.sendid
- s_send.mx[ll_i].printid = ll_i
-
- NEXT
-
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK Using commit_transaction;
- ELSE
- COMMIT Using commit_transaction;
- END IF
- RETURN rslt
- end function
- public function integer uf_getinfo_withmx (long arg_sendid, ref s_spring_send arg_s_send, ref string arg_msg);Int rslt = 1
- IF uf_getinfo(arg_sendid, Ref arg_s_send, Ref arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- s_spring_sendmx mx[]
- Long ll_cnt = 0
- s_spring_sendmx cur
- DECLARE cur1 CURSOR FOR
- SELECT sendid, printid, revtype, revid, revname, revrep, revphone
- FROM u_spring_sendmx
- Where sendid = :arg_sendid Using commit_transaction;
- OPEN cur1;
- FETCH cur1 Into : cur.sendid, :cur.printid, :cur.revtype, :cur.revid, :cur.revname, :cur.revrep, :cur.revphone;
- DO WHILE commit_transaction.SQLCode = 0
- ll_cnt ++
- mx[ll_cnt].sendid = cur.sendid
- mx[ll_cnt].printid = cur.printid
- mx[ll_cnt].revtype = cur.revtype
- mx[ll_cnt].revid = cur.revid
- mx[ll_cnt].revname = cur.revname
- mx[ll_cnt].revrep = cur.revrep
- mx[ll_cnt].revphone = cur.revphone
-
- FETCH cur1 Into : cur.sendid, :cur.printid, :cur.revtype, :cur.revid, :cur.revname, :cur.revrep, :cur.revphone;
- LOOP
- CLOSE cur1;
- arg_s_send.mx = mx
- ext:
- RETURN rslt
- end function
- public function integer uf_del (long arg_sendid, ref string arg_msg, boolean if_commit);Int rslt = 1
- DELETE From u_spring_sendmx Where sendid = :arg_sendid Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '删除短信接收人失败,' + commit_transaction.SQLErrText
- GOTO ext
- END IF
- DELETE From u_spring_send Where sendid = :arg_sendid Using commit_transaction;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '删除短信失败,' + commit_transaction.SQLErrText
- GOTO ext
- END IF
- ext:
- IF if_commit THEN
- IF rslt = 1 THEN
- COMMIT Using commit_transaction;
- ELSE
- ROLLBACK Using commit_transaction;
- END IF
- END IF
- RETURN rslt
- end function
- on uo_spring_send.create
- call super::create
- TriggerEvent( this, "constructor" )
- end on
- on uo_spring_send.destroy
- TriggerEvent( this, "destructor" )
- call super::destroy
- end on
|