123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- $PBExportHeader$uo_find_sc_wrkgrpid.sru
- forward
- global type uo_find_sc_wrkgrpid from nonvisualobject
- end type
- end forward
- global type uo_find_sc_wrkgrpid from nonvisualobject
- end type
- global uo_find_sc_wrkgrpid uo_find_sc_wrkgrpid
- type variables
- Long deep
- Boolean lb_find = False
- end variables
- forward prototypes
- public function integer uof_rst_top1_produce_wrkgrpid (long arg_scid, long arg_orderid, long arg_pmtrlid, long arg_mtrlid, long arg_wrkgrpid, string arg_status, string arg_woodcode, string arg_pcode, ref long arg_ref_top1_lp, ref long arg_ref_top1_printid, ref long arg_ref_top1_produce_scid, ref long arg_ref_top1_produce_wrkgrpid, ref string arg_msg)
- end prototypes
- public function integer uof_rst_top1_produce_wrkgrpid (long arg_scid, long arg_orderid, long arg_pmtrlid, long arg_mtrlid, long arg_wrkgrpid, string arg_status, string arg_woodcode, string arg_pcode, ref long arg_ref_top1_lp, ref long arg_ref_top1_printid, ref long arg_ref_top1_produce_scid, ref long arg_ref_top1_produce_wrkgrpid, ref string arg_msg);Int rslt = 1
- Int rst,li_ifselforder
- Long ll_j,j,ll_mtrlid_arr[]
- Long ll_lp,ll_printid,ll_produce_scid,ll_produce_wrkGrpid
- j = 1
- deep++
- IF deep = 100 THEN
- arg_msg = '本次操作物料在指令单对应主生产计划运算结果中找不到对应明细,本指令单物料下级太多虚拟编码(>100),操作取消'
- rslt = 0
- GOTO ext
- END IF
- SELECT u_mtrldef.ifselforder
- INTO :li_ifselforder
- FROM u_mtrldef
- Where mtrlid = :arg_pmtrlid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询物料是否虚拟编码失败,'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- SELECT top 1 lp,
- printid,
- produce_scid,
- produce_wrkGrpid
- INTO :ll_lp,
- :ll_printid,
- :ll_produce_scid,
- :ll_produce_wrkGrpid
- FROM u_orderrqmtrl_tree
- WHERE scid = :arg_scid
- AND orderid = :arg_orderid
- AND pmtrlid = :arg_pmtrlid
- AND mtrlid = :arg_mtrlid
- AND wrkgrpid = :arg_wrkgrpid
- AND status = :arg_status
- AND woodcode = :arg_woodcode
- And pcode = :arg_pcode;
- IF sqlca.SQLCode <> 0 THEN
- IF sqlca.SQLCode = 100 THEN
- DECLARE cur_mtrlmx_1 CURSOR FOR
- SELECT u_orderrqmtrl_tree.mtrlid
- FROM u_orderrqmtrl_tree,u_mtrldef
- WHERE u_orderrqmtrl_tree.scid = :arg_scid
- AND u_orderrqmtrl_tree.orderid = :arg_orderid
- AND u_orderrqmtrl_tree.pmtrlid = :arg_pmtrlid
- AND u_orderrqmtrl_tree.mtrlid = u_mtrldef.mtrlid
- And u_mtrldef.ifselforder = 0;
- OPEN cur_mtrlmx_1;
- FETCH cur_mtrlmx_1 Into :ll_mtrlid_arr[j];
- DO WHILE sqlca.SQLCode = 0
- j++
- FETCH cur_mtrlmx_1 Into :ll_mtrlid_arr[j];
- LOOP
- CLOSE cur_mtrlmx_1;
-
- IF j - 1 = 0 THEN
- rslt = 2
- GOTO ext
- END IF
-
- FOR ll_j = 1 To j - 1
- rst = uof_rst_top1_produce_wrkGrpid(arg_scid,arg_orderid,ll_mtrlid_arr[ll_j],arg_mtrlid,&
- arg_wrkgrpid,arg_status,arg_woodcode,arg_pcode,&
- arg_ref_top1_lp,arg_ref_top1_printid,&
- arg_ref_top1_produce_scid,arg_ref_top1_produce_wrkGrpid,arg_msg)
- IF rst = 1 THEN
- GOTO ext
- ELSEIF rst = 0 THEN
- rslt = 0
- GOTO ext
- ELSEIF rslt = 2 THEN
- CONTINUE
- END IF
- NEXT
- ELSE
- arg_msg = '本次操作物料在指令单对应主生产计划运算结果中找应明细失败 ~n 1.在对应主生产计划运算结果中查询下级虚拟编码失败 ~n'+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ELSE
- lb_find = True
- arg_ref_top1_lp = ll_lp
- arg_ref_top1_printid = ll_printid
- arg_ref_top1_produce_scid = ll_produce_scid
- arg_ref_top1_produce_wrkGrpid = ll_produce_wrkGrpid
- GOTO ext
- END IF
- IF li_ifselforder <> 0 And Not lb_find THEN
- rslt = 0
- arg_msg = '本次操作物料在指令单对应主生产计划运算结果中找不到对应明细 ~n 1.在对应主生产计划运算结果中对应指令单下级第1层物料明细找不到该物料 ~n 2.在对应主生产计划运算结果中对应指令单下级物料明细没有虚拟编码'
- GOTO ext
- END IF
- ext:
- RETURN rslt
- end function
- on uo_find_sc_wrkgrpid.create
- call super::create
- TriggerEvent( this, "constructor" )
- end on
- on uo_find_sc_wrkgrpid.destroy
- TriggerEvent( this, "destructor" )
- call super::destroy
- end on
|