123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326 |
- $PBExportHeader$uo_inware_ll.sru
- forward
- global type uo_inware_ll from uo_inware
- end type
- end forward
- global type uo_inware_ll from uo_inware
- end type
- global uo_inware_ll uo_inware_ll
- type variables
- end variables
- forward prototypes
- public function integer auditing (boolean arg_ifcommit, ref string arg_msg)
- public function integer c_auditing (boolean arg_ifcommit, ref string arg_msg)
- end prototypes
- public function integer auditing (boolean arg_ifcommit, ref string arg_msg);Int rslt = 1
- Long cnt = 0,i
- uo_saletask_ll uo_task
- uo_task = Create uo_saletask_ll
- uo_task.commit_transaction = commit_transaction
- uo_sqlpro uo_pro
- uo_pro = Create uo_sqlpro
- uo_pro.commit_transaction = commit_transaction
- IF storageid = 0 THEN
- rslt = 0
- arg_msg = '没有正确的仓库'
- GOTO ext
- END IF
- IF billtype <> 9 THEN
- IF uof_check_warepdb_audit(storageid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- String ls_storagename
- SELECT storagename
- INTO :ls_storagename
- FROM u_storage
- Where storageid = :storageid Using commit_transaction ;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,仓库"
- GOTO ext
- END IF
- //检查是否有该仓库的建立权限
- IF sys_user_storagestr_audit <> '0' THEN
- IF Pos(sys_user_storagestr_audit,','+String(storageid)+',') <= 0 THEN
- rslt = 0
- arg_msg = '没有仓库: '+ls_storagename+' 的审核权限,不允许审核该仓库的单据'
- GOTO ext
- END IF
- END IF
- //
- IF inwareid = 0 THEN
- rslt = 0
- arg_msg = "没有进仓审核对象"
- GOTO ext
- END IF
- IF flag = 1 THEN
- rslt = 0
- arg_msg = "单据已经审核"
- GOTO ext
- END IF
- UPDATE u_inware
- SET auditingrep = :publ_operator,
- auditingdate = getdate(),
- flag = 1
- WHERE u_inware.inwareid = :inwareid
- AND flag = 0
- And scid = :scid Using commit_transaction;
-
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致审核单据操作失败"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- ELSEIF commit_transaction.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = "单据正在审核,请稍后查询。"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- FOR i = 1 To it_mxbt
- IF f_power_ind(2203,sys_msg_pow) And Not sys_power_issuper THEN
- IF inwaremx[i].cost = 0 THEN
- rslt = 0
- arg_msg = '行:'+String(i)+',没有单价,请检查'
- GOTO ext
- END IF
- END IF
-
- Long ll_sptid
-
- IF billtype = 1 Or billtype = 4 THEN
- ll_sptid = 0
- ELSE
- ll_sptid = inwaremx[i].sptid
- END IF
- IF sys_option_inout_procedure = 0 THEN
- IF p_update_mtrlware(inwaremx[i].mtrlid,inwaremx[i].mtrlcode,&
- storageid,inwaremx[i].plancode,inwaremx[i].status,&
- inwaremx[i].qty,inwaremx[i].uqty,inwaremx[i].cost,inwaremx[i].planprice,&
- ll_sptid,inwaremx[i].dxflag,inwaremx[i].woodcode,&
- inwaremx[i].pcode,inwaremx[i].mtrlcuscode,inwaremx[i].Location,&
- inwaremx[i].mtrlwaredscrp,inwaremx[i].ifvqty,arg_msg) = 0 THEN
- arg_msg = '更新行:'+String(i)+','+arg_msg
- rslt = 0
- GOTO ext
- END IF
- ELSE
- IF p_update_mtrlware_ws(inwaremx[i].mtrlid,inwaremx[i].mtrlcode,&
- storageid,inwaremx[i].plancode,inwaremx[i].status,&
- inwaremx[i].qty,inwaremx[i].uqty,inwaremx[i].cost,inwaremx[i].planprice,&
- ll_sptid,inwaremx[i].dxflag,inwaremx[i].woodcode,&
- inwaremx[i].pcode,inwaremx[i].mtrlcuscode,inwaremx[i].Location,inwaremx[i].mtrlwaredscrp,arg_msg) = 0 THEN
- arg_msg = '更新行:'+String(i)+','+arg_msg
- rslt = 0
- GOTO ext
- END IF
- END IF
-
- IF billtype = 5 And inwaremx[i].relid > 0 THEN
- IF uo_task.addmxcmpl_in(inwaremx[i].relid,inwaremx[i].relprintid,&
- inwaremx[i].uqty,arg_msg,False) <> 1 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
-
- NEXT
- flag = 1
- ext:
- IF rslt = 0 THEN
- ROLLBACK Using commit_transaction;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT Using commit_transaction;
- END IF
- Destroy uo_task
- Destroy uo_pro
- RETURN rslt
- end function
- public function integer c_auditing (boolean arg_ifcommit, ref string arg_msg);Int rslt = 1
- Long cnt = 0,i
- uo_sqlpro uo_pro
- uo_pro = Create uo_sqlpro
- uo_pro.commit_transaction = commit_transaction
- uo_saletask_ll uo_task
- uo_task = Create uo_saletask_ll
- uo_task.commit_transaction = commit_transaction
- DateTime null_dt
- SetNull(null_dt)
- IF storageid = 0 THEN
- rslt = 0
- arg_msg = '没有正确的仓库'
- GOTO ext
- END IF
- IF billtype <> 9 THEN
- IF uof_check_warepdb_audit(storageid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
- String ls_storagename
- SELECT storagename
- INTO :ls_storagename
- FROM u_storage
- Where storageid = :storageid Using commit_transaction ;
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,仓库"
- GOTO ext
- END IF
- //检查是否有该仓库的建立权限
- IF sys_user_storagestr_audit <> '0' THEN
- IF Pos(sys_user_storagestr_audit,','+String(storageid)+',') <= 0 THEN
- rslt = 0
- arg_msg = '没有仓库: '+ls_storagename+' 的审核权限,不允许撤审该仓库的单据'
- GOTO ext
- END IF
- END IF
- //
- IF inwareid = 0 THEN
- rslt = 0
- arg_msg = "没有出仓撤审对象"
- GOTO ext
- END IF
- IF ctmint > 0 THEN
- arg_msg = '单据已截数,不能操作'
- rslt = 0
- GOTO ext
- END IF
- IF flag = 0 THEN
- rslt = 0
- arg_msg = "单据还未审核"
- GOTO ext
- END IF
- IF balcflag = 1 THEN
- rslt = 0
- arg_msg = "单据已经结存,不能撤审"
- GOTO ext
- END IF
- UPDATE u_inware
- SET auditingrep = '',
- auditingdate = :null_dt,
- flag = 0
- WHERE u_inware.inwareid = :inwareid
- And flag = 1 And scid = :scid Using commit_transaction;
-
- IF commit_transaction.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致审核单据操作失败"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- ELSEIF commit_transaction.SQLNRows = 0 THEN
- rslt = 0
- arg_msg = "单据正在审核,请稍后查询。"+"~n"+commit_transaction.SQLErrText
- GOTO ext
- END IF
- FOR i = 1 To it_mxbt
- Long ll_sptid
-
- IF billtype = 1 Or billtype = 4 THEN
- ll_sptid = 0
- ELSE
- ll_sptid = inwaremx[i].sptid
- END IF
-
- IF sys_option_inout_procedure = 0 THEN
-
- IF p_update_mtrlware(inwaremx[i].mtrlid,inwaremx[i].mtrlcode,&
- storageid,inwaremx[i].plancode,inwaremx[i].status,&
- 0 - inwaremx[i].qty,0 - inwaremx[i].uqty,inwaremx[i].cost,inwaremx[i].planprice,&
- ll_sptid,inwaremx[i].dxflag,inwaremx[i].woodcode,&
- inwaremx[i].pcode,inwaremx[i].mtrlcuscode,inwaremx[i].Location,&
- inwaremx[i].mtrlwaredscrp,inwaremx[i].ifvqty,arg_msg) = 0 THEN
- arg_msg = '更新行:'+String(i)+','+arg_msg
- rslt = 0
- GOTO ext
- END IF
- ELSE
- IF uo_pro.p_inware_update_mtrlware(scid,inwareid,inwaremx[i].printid,inwaremx[i].mtrlid,&
- inwaremx[i].mtrlcode,storageid,inwaremx[i].plancode,inwaremx[i].status,0 - inwaremx[i].qty,&
- 0 - inwaremx[i].uqty,inwaremx[i].cost,inwaremx[i].planprice,ll_sptid,inwaremx[i].dxflag,&
- inwaremx[i].woodcode,inwaremx[i].pcode,inwaremx[i].mtrlcuscode,inwaremx[i].Location,inwaremx[i].mtrlwaredscrp,arg_msg) = 0 THEN
- arg_msg = '更新行:'+String(i)+','+arg_msg
- rslt = 0
- GOTO ext
- END IF
- END IF
-
- IF billtype = 5 And inwaremx[i].relid > 0 THEN
- IF uo_task.addmxcmpl_in(inwaremx[i].relid,inwaremx[i].relprintid,&
- 0 - inwaremx[i].uqty,arg_msg,False) <> 1 THEN
- rslt = 0
- GOTO ext
- END IF
- END IF
-
- NEXT
- flag = 0
- ext:
- IF rslt = 0 THEN
- ROLLBACK Using commit_transaction;
- ELSEIF rslt = 1 And arg_ifcommit THEN
- COMMIT Using commit_transaction;
- END IF
- Destroy uo_task
- Destroy uo_pro
- RETURN rslt
- end function
- on uo_inware_ll.create
- call super::create
- end on
- on uo_inware_ll.destroy
- call super::destroy
- end on
|