123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249 |
- $PBExportHeader$uo_inware_skl.sru
- forward
- global type uo_inware_skl from uo_inware
- end type
- end forward
- global type uo_inware_skl from uo_inware
- end type
- global uo_inware_skl uo_inware_skl
- 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);Long rslt = 1,cnt = 0,i
- Dec new_noallocqty = 0
- Long ls_newid
- uo_order_ml uo_order
- uo_order = CREATE uo_order_ml
- IF f_aps_mrp_cklock(scid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- IF inwareid = 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
- IF it_newbegin OR it_updatebegin 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].uprice = 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 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
-
- IF inwaremx[i].relid > 0 THEN
- IF uo_order.addmxskl(scid,inwaremx[i].relid,inwaremx[i].qty,inwaremx[i].price * inwaremx[i].qty,arg_msg,FALSE) = 0 THEN
- arg_msg = '第'+string(i)+'行,'+arg_msg
- 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_order
- RETURN rslt
- end function
- public function integer c_auditing (boolean arg_ifcommit, ref string arg_msg);Long rslt = 1,cnt = 0,i
- Dec new_noallocqty = 0
- Long ls_newid
- DateTime null_dt
- IF f_aps_mrp_cklock(scid,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- END IF
- uo_order_ml uo_order
- uo_order = CREATE uo_order_ml
- SetNull(null_dt)
- IF inwareid = 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
- IF it_newbegin OR it_updatebegin THEN
- rslt = 0
- arg_msg = "编辑状态下不可以执行审核"
- 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 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
-
- IF inwaremx[i].relid > 0 THEN
- IF uo_order.addmxskl(scid,inwaremx[i].relid,0 - inwaremx[i].qty, 0 - (inwaremx[i].qty * inwaremx[i].price) ,arg_msg,FALSE) = 0 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_order
- RETURN rslt
- end function
- on uo_inware_skl.create
- call super::create
- end on
- on uo_inware_skl.destroy
- call super::destroy
- end on
|