123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276 |
- $PBExportHeader$uo_mtrl_change_rule.sru
- forward
- global type uo_mtrl_change_rule from nonvisualobject
- end type
- end forward
- global type uo_mtrl_change_rule from nonvisualobject
- end type
- global uo_mtrl_change_rule uo_mtrl_change_rule
- type variables
- long uo_ruleid
- end variables
- forward prototypes
- public function integer save (s_mtrl_change_rule arg_s_rule, ref string arg_msg, boolean arg_ifcommit)
- public function integer del (long arg_ruleid, ref string arg_msg, boolean arg_ifcommit)
- end prototypes
- public function integer save (s_mtrl_change_rule arg_s_rule, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- Long cnt = 0
- Long ll_newid
- DateTime server_dt
- Long it_mxbt,it_mxbt_mtrl
- Long i,j
- IF IsNull(arg_s_rule.ruleid) THEN arg_s_rule.ruleid = 0
- IF IsNull(arg_s_rule.rulename) THEN arg_s_rule.rulename = ''
- IF IsNull(arg_s_rule.rulestr) THEN arg_s_rule.rulestr = ''
- IF IsNull(arg_s_rule.dscrp) THEN arg_s_rule.dscrp = ''
- IF IsNull(arg_s_rule.Kind) THEN arg_s_rule.Kind = 0
- SELECT Top 1 getdate() INTO :server_dt FROM u_user;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "查询操作失败,日期 "
- GOTO ext
- END IF
- IF arg_s_rule.rulename = '' THEN
- rslt = 0
- arg_msg = '请输入换料策略名称'
- GOTO ext
- END IF
- IF arg_s_rule.rulestr = '' THEN
- rslt = 0
- arg_msg = '请填写换料策略规则'
- GOTO ext
- END IF
- it_mxbt = UpperBound(arg_s_rule.arg_s_mx)
- IF arg_s_rule.Kind = 0 THEN
- IF it_mxbt <= 0 THEN
- rslt = 0
- arg_msg = "没有正确规则明细内容"
- GOTO ext
- END IF
- END IF
- it_mxbt_mtrl = UpperBound(arg_s_rule.arg_s_mtrlmx)
- IF it_mxbt_mtrl <= 0 THEN
- rslt = 0
- arg_msg = "没有正确的生效产品或半成品列表"
- GOTO ext
- END IF
- IF arg_s_rule.ruleid = 0 THEN
- ll_newid = f_sys_scidentity(0,"u_mtrl_change_rule","ruleid",arg_msg,TRUE,id_sqlca)
-
- IF ll_newid <= 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- INSERT INTO u_mtrl_change_rule
- (ruleid,
- rulename,
- rulestr,
- dscrp,
- opemp,
- opdate,
- kind)
- VALUES
- (:ll_newid,
- :arg_s_rule.rulename,
- :arg_s_rule.rulestr,
- :arg_s_rule.dscrp,
- :publ_operator,
- getdate(),
- :arg_s_rule.Kind);
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '新增换料策略失败'+sqlca.SQLErrText
- GOTO ext
- END IF
-
- FOR i = 1 TO it_mxbt
- INSERT INTO u_mtrl_change_rule_mx
- (ruleid,
- printid,
- rule_if,
- rule_then,
- repeattype)
- VALUES
- (:ll_newid,
- :arg_s_rule.arg_s_mx[i].printid,
- :arg_s_rule.arg_s_mx[i].rule_if,
- :arg_s_rule.arg_s_mx[i].rule_then,
- :arg_s_rule.arg_s_mx[i].repeattype);
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '插入换料明细规则失败'+sqlca.SQLErrText
- GOTO ext
- END IF
-
- NEXT
-
- FOR j = 1 TO it_mxbt_mtrl
- INSERT INTO u_mtrl_change_rule_mtrlmx
- (ruleid,
- mtrlid)
- VALUES
- (:ll_newid,
- :arg_s_rule.arg_s_mtrlmx[j].mtrlid);
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '插入换料物料明细失败'+sqlca.SQLErrText
- GOTO ext
- END IF
- NEXT
-
- uo_ruleid = ll_newid
- ELSE
- UPDATE u_mtrl_change_rule
- SET rulename = :arg_s_rule.rulename,
- rulestr = :arg_s_rule.rulestr,
- dscrp = :arg_s_rule.dscrp,
- moddate = getdate(),
- modemp = :publ_operator
- Where ruleid = :arg_s_rule.ruleid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '更新换料策略失败'+sqlca.SQLErrText
- GOTO ext
- END IF
-
-
- DELETE FROM u_mtrl_change_rule_mx
- Where ruleid = :arg_s_rule.ruleid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除旧有规则明细操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- DELETE FROM u_mtrl_change_rule_mtrlmx
- Where ruleid = :arg_s_rule.ruleid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除旧有物料明细操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
-
- FOR i = 1 TO it_mxbt
- INSERT INTO u_mtrl_change_rule_mx
- (ruleid,
- printid,
- rule_if,
- rule_then,
- repeattype)
- VALUES
- (:arg_s_rule.ruleid,
- :arg_s_rule.arg_s_mx[i].printid,
- :arg_s_rule.arg_s_mx[i].rule_if,
- :arg_s_rule.arg_s_mx[i].rule_then,
- :arg_s_rule.arg_s_mx[i].repeattype);
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '插入换料明细规则失败'+sqlca.SQLErrText
- GOTO ext
- END IF
- NEXT
-
- FOR j = 1 TO it_mxbt_mtrl
- INSERT INTO u_mtrl_change_rule_mtrlmx
- (ruleid,
- mtrlid)
- VALUES
- (:arg_s_rule.ruleid,
- :arg_s_rule.arg_s_mtrlmx[j].mtrlid);
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '插入换料物料明细失败'+sqlca.SQLErrText
- GOTO ext
- END IF
- NEXT
-
- uo_ruleid = arg_s_rule.ruleid
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF arg_ifcommit AND rslt = 1 THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer del (long arg_ruleid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
- IF arg_ruleid <= 0 THEN
- rslt = 0
- arg_msg = '错误单据唯一码'
- GOTO ext
- END IF
- DELETE FROM u_mtrl_change_rule_mx
- Where ruleid = :arg_ruleid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除换料规则明细操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- DELETE FROM u_mtrl_change_rule_mtrlmx
- Where ruleid = :arg_ruleid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除物料明细操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- DELETE FROM u_mtrl_change_rule
- Where ruleid = :arg_ruleid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "删除换料策略操作失败"+"~n"+sqlca.SQLErrText
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- on uo_mtrl_change_rule.create
- call super::create
- TriggerEvent( this, "constructor" )
- end on
- on uo_mtrl_change_rule.destroy
- TriggerEvent( this, "destructor" )
- call super::destroy
- end on
|