123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307 |
- $PBExportHeader$uo_mtrl_structure.sru
- forward
- global type uo_mtrl_structure from nonvisualobject
- end type
- end forward
- global type uo_mtrl_structure from nonvisualobject
- end type
- global uo_mtrl_structure uo_mtrl_structure
- type variables
- long ul_mtrlid
- end variables
- forward prototypes
- public function integer uof_chk_rand (long arg_mtrlid)
- public function integer uof_prdpf_add (long arg_mtrlid, string arg_pfcode, s_structuremx arg_mx[], boolean arg_ifcommit, ref string arg_msg)
- public function integer uof_prdpf_del (long arg_mtrlid, string arg_pfcode, boolean arg_ifcommit, ref string arg_msg)
- public function integer uof_gy_del (long arg_mtrlid, string arg_pfcode, boolean arg_ifcommit, ref string arg_msg)
- public function integer uof_gy_add (long arg_mtrlid, string arg_pfcode, string arg_pf_gy, boolean arg_ifcommit, ref string arg_msg)
- public function integer uof_update_sopdate (long arg_mtrlid, boolean arg_ifcommit, ref string arg_msg)
- public function long uof_get_maxprintid (long arg_mtrlid, string arg_pfcode)
- public function integer uof_chk_prdpf (long arg_mtrlid, string arg_pfcode, string arg_pfgroup, long arg_sonmtrlid)
- end prototypes
- public function integer uof_chk_rand (long arg_mtrlid);//==============================================================================
- // 函数: uo_mtrl_structore::uof_chk_rand()
- //------------------------------------------------------------------------------
- // 描述: 检查环, 需先定义ul_mtrlid
- // ul_mtrlid = XXX
- // uof_chk_rand(YYY)
- //------------------------------------------------------------------------------
- // 参数:
- // value long arg_mtrlid
- //------------------------------------------------------------------------------
- // 返回值: integer
- //------------------------------------------------------------------------------
- // 作者: HD Lee 日期: 2011.11.06
- //------------------------------------------------------------------------------
- // 修改历史:
- //
- //==============================================================================
- Int rslt = 1
- Long count
- Long mtrlid[],ls_i
- IF arg_mtrlid = ul_mtrlid THEN RETURN 0
- DECLARE pf_cur CURSOR FOR
- SELECT u_PrdPF.SonMtrlid
- FROM u_PrdPF
- Where ( u_PrdPF.mtrlid = :arg_mtrlid );
- OPEN pf_cur;
- count = 1
- FETCH pf_cur INTO :mtrlid[count];
- DO WHILE sqlca.SQLCode = 0
- count++
- FETCH pf_cur INTO :mtrlid[count];
- LOOP
- count = count - 1
- CLOSE pf_cur;
- FOR ls_i = 1 TO count
- rslt = uof_chk_rand(mtrlid[ls_i])
- IF rslt <> 1 THEN RETURN rslt
- NEXT
- RETURN rslt
- end function
- public function integer uof_prdpf_add (long arg_mtrlid, string arg_pfcode, s_structuremx arg_mx[], boolean arg_ifcommit, ref string arg_msg);
- Int rslt = 1
- Long i
- FOR i = 1 TO UpperBound(arg_mx)
- INSERT INTO u_prdpf
- ( mtrlid,
- pfcode,
- sonmtrlid,
- sonscale,
- sonloss,
- sondecloss,
- sonahead,
- dscrp,
- updownrate,
- ifreputate,
- ifover,
- pfgroup,
- pfgroupqty,
- pfgroupmode,
- promode,
- printid,
- wrkgrpid,
- status,
- pcode,
- woodcode)
- VALUES ( :arg_mtrlid,
- :arg_pfcode,
- :arg_mx[i].mtrlid,
- :arg_mx[i].sonscale,
- :arg_mx[i].sonloss,
- :arg_mx[i].sondecloss,
- :arg_mx[i].sonahead,
- :arg_mx[i].dscrp,
- :arg_mx[i].updownrate,
- :arg_mx[i].ifreputate,
- :arg_mx[i].ifover,
- :arg_mx[i].pfgroup,
- :arg_mx[i].pfgroupqty,
- :arg_mx[i].pfgroupmode,
- :arg_mx[i].promode,
- :arg_mx[i].printid,
- :arg_mx[i].wrkgrpid,
- :arg_mx[i].status,
- :arg_mx[i].pcode,
- :arg_mx[i].woodcode) ;
-
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = "因为网络或其他原因,插入物料清单操作失败!"+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- NEXT
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer uof_prdpf_del (long arg_mtrlid, string arg_pfcode, boolean arg_ifcommit, ref string arg_msg);
- Int rslt = 1
- DELETE FROM u_prdpf
- WHERE ( u_prdpf.mtrlid = :arg_mtrlid ) AND
- ( u_prdpf.pfcode = :arg_pfcode );
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = "因为网络或其他原因,删除物料清单操作失败!"+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer uof_gy_del (long arg_mtrlid, string arg_pfcode, boolean arg_ifcommit, ref string arg_msg);
- Int rslt = 1
- DELETE FROM u_mtrl_structure_gy
- WHERE ( mtrlid = :arg_mtrlid ) AND
- ( pfcode = :arg_pfcode );
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = "因为网络或其他原因,删除物料清单工艺说明操作失败!"+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer uof_gy_add (long arg_mtrlid, string arg_pfcode, string arg_pf_gy, boolean arg_ifcommit, ref string arg_msg);//==============================================================================
- // 函数: uo_mtrl_structore::uof_gy_add()
- //------------------------------------------------------------------------------
- // 描述: 新建/更新工艺说明
- //------------------------------------------------------------------------------
- // 参数:
- // value long arg_mtrlid
- // value string arg_pfcode
- // value string arg_pf_gy
- // value boolean arg_ifcommit
- // reference string arg_msg
- //------------------------------------------------------------------------------
- // 返回值: integer
- //------------------------------------------------------------------------------
- // 作者: HD Lee 日期: 2011.11.06
- //------------------------------------------------------------------------------
- // 修改历史:
- //
- //==============================================================================
- Int rslt = 1
- UPDATE u_mtrl_structure_gy
- SET pfgy = :arg_pf_gy
- WHERE ( mtrlid = :arg_mtrlid ) AND
- ( pfcode = :arg_pfcode ) ;
- IF sqlca.SQLCode = 0 THEN
- IF sqlca.SQLNRows = 0 THEN
- INSERT INTO u_mtrl_structure_gy (mtrlid,pfcode, pfgy )
- Values (:arg_mtrlid,:arg_pfcode, :arg_pf_gy);
-
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = "因为网络或其他原因,插入物料清单工艺说明操作失败!"+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- END IF
- ELSE
- arg_msg = "因为网络或其他原因,更新物料清单工艺说明操作失败!"+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function integer uof_update_sopdate (long arg_mtrlid, boolean arg_ifcommit, ref string arg_msg);
- Int rslt = 1
- UPDATE u_mtrldef
- SET sopdate = getdate() ,
- spopemp = :publ_operator
- Where mtrlid = :arg_mtrlid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = "因为网络或其他原因,更新产品物料构成修改时间操作失败!"+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- ELSEIF rslt = 1 AND arg_ifcommit THEN
- COMMIT;
- END IF
- RETURN rslt
- end function
- public function long uof_get_maxprintid (long arg_mtrlid, string arg_pfcode);Long ll_printid
- SELECT Max(printid)
- INTO :ll_printid
- FROM u_prdpf
- WHERE mtrlid = :arg_mtrlid
- AND pfcode = :arg_pfcode;
- IF sqlca.SQLCode <> 0 THEN
- ll_printid = 0
- END IF
- IF IsNull(ll_printid) THEN ll_printid = 0
- RETURN ll_printid
- end function
- public function integer uof_chk_prdpf (long arg_mtrlid, string arg_pfcode, string arg_pfgroup, long arg_sonmtrlid);Long cnt
- SELECT count(*)
- INTO :cnt
- FROM u_prdpf
- WHERE mtrlid = :arg_mtrlid
- AND pfcode = :arg_pfcode
- AND pfgroup = :arg_pfgroup
- AND sonmtrlid = :arg_sonmtrlid;
- IF sqlca.SQLCode <> 0 THEN
- cnt = 0
- END IF
- IF cnt > 0 THEN
- RETURN 0
- ELSE
- RETURN 1
- END IF
- end function
- on uo_mtrl_structure.create
- call super::create
- TriggerEvent( this, "constructor" )
- end on
- on uo_mtrl_structure.destroy
- TriggerEvent( this, "destructor" )
- call super::destroy
- end on
|