123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302 |
- $PBExportHeader$uo_mtrlpz.sru
- forward
- global type uo_mtrlpz from nonvisualobject
- end type
- end forward
- global type uo_mtrlpz from nonvisualobject
- end type
- global uo_mtrlpz uo_mtrlpz
- type variables
-
- end variables
- forward prototypes
- public function integer save_mtrlpz (s_mtrl_pz arg_s_mp, ref string arg_msg)
- public function integer delete_configuretype (long arg_configutetypeid, ref string arg_msg)
- public function s_mtrlpz_array getconfiguremx (long arg_configuretypeid)
- public function integer add_configuretype (s_mtrlpz_array arg_s_ma, string arg_contfigtypename, integer arg_contfigtype, ref string arg_msg)
- public function integer setdefaultpz (integer arg_flag, long arg_mtrlid, ref string arg_msg, long arg_cid)
- public function s_mtrlpzmx getpzmx (long arg_cid)
- end prototypes
- public function integer save_mtrlpz (s_mtrl_pz arg_s_mp, ref string arg_msg);Long cnt = 0,ls_i
- string ls_pzname
- long ll_mtrlid
- IF arg_s_mp.mode = 2 THEN //如果是删除
- select name,mtrlid into :ls_pzname,:ll_mtrlid
- from u_mtrl_configure
- where cid = :arg_s_mp.cid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询物料配置信息失败,'+sqlca.sqlerrtext
- ROLLBACK;
- RETURN 0
- END IF
-
- delete from u_mtrl_planprice where mtrlid = :ll_mtrlid and status = :ls_pzname;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '查询物料配置计划成本价资料失败,'+sqlca.sqlerrtext
- ROLLBACK;
- RETURN 0
- END IF
-
- DELETE FROM u_mtrl_configure Where cid = :arg_s_mp.cid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '删除物料配置失败'
- ROLLBACK;
- RETURN 0
- END IF
- RETURN 1
- END IF
- IF arg_s_mp.mode = 0 THEN //如果是新建,则获取新id,并检查重复的配置
- //获得新的cid
- arg_s_mp.cid = f_sys_scidentity(0,"u_mtrl_configure","cid",arg_msg,TRUE,sqlca)
- IF arg_s_mp.cid < 0 THEN
- ROLLBACK;
- RETURN 0
- END IF
- //检查重复配置
- SELECT count(*) INTO :cnt FROM u_mtrl_configure Where mtrlid = :arg_s_mp.mtrlid AND code = :arg_s_mp.code;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '检查配置失败'
- RETURN 0
- END IF
- IF IsNull(cnt) THEN
- cnt = 0
- END IF
- IF cnt > 0 THEN
- arg_msg = '更新失败,重复的配置码'
- RETURN 0
- END IF
- END IF
- IF arg_s_mp.mode = 0 THEN
- INSERT INTO u_mtrl_configure (mtrlid,cid,code,Name,TYPE) Values(:arg_s_mp.mtrlid,:arg_s_mp.cid,:arg_s_mp.code,:arg_s_mp.Name,2);
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '插入物料配置失败'
- ROLLBACK;
- RETURN 0
- END IF
- ELSE
- UPDATE u_mtrl_configure Set mtrlid = :arg_s_mp.mtrlid,code = :arg_s_mp.code,Name = :arg_s_mp.Name Where cid = :arg_s_mp.cid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '更新物料配置失败'
- ROLLBACK;
- RETURN 0
- END IF
- END IF
- RETURN 1
- end function
- public function integer delete_configuretype (long arg_configutetypeid, ref string arg_msg);Long cnt = 0
- //SELECT count(*) INTO :cnt FROM u_mtrldef Where colorprp = :arg_configutetypeid;
- //IF sqlca.SQLCode <> 0 THEN
- // arg_msg = "删除配置类型失败,不能检查类型是否已经使用"
- // RETURN 0
- //END IF
- //IF cnt > 0 THEN
- // arg_msg = "删除配置类型失败,该类型已经在使用,不允许删除"
- // RETURN 0
- //END IF
- //
- //DELETE FROM u_configure_typemx Where contfigtypeid = :arg_configutetypeid;
- //IF sqlca.SQLCode <> 0 THEN
- // arg_msg = '删除配置类型明细失败'
- // ROLLBACK;
- // RETURN 0
- //END IF
- //
- //DELETE FROM u_configure_type Where contfigtypeid = :arg_configutetypeid;
- //IF sqlca.SQLCode <> 0 THEN
- // arg_msg = '删除配置类型失败'
- // ROLLBACK;
- // RETURN 0
- //END IF
- RETURN 1
- end function
- public function s_mtrlpz_array getconfiguremx (long arg_configuretypeid);s_mtrlpz_array s_mpz
- // long cur_pzid
- // string cur_name,cur_pzcode
- //
- //
- // declare cur_pz cursor for
- // SELECT u_configure_code.pzcode, u_configure_code.name,u_configure_code.pzid
- // FROM u_configure_typemx INNER JOIN
- // u_configure_code ON u_configure_typemx.pzid = u_configure_code.pzid
- // where u_configure_typemx.contfigtypeid = :arg_configuretypeid;
- // open cur_pz;
- // fetch cur_pz into :cur_pzcode,:cur_name,:cur_pzid;
- // long ls_mxrow=0
- // long cnt=0
- // if sqlca.sqlcode <> 0 then
- // s_mpz.pzcode[1] = ''
- // s_mpz.pzname[1] = ''
- // s_mpz.pzid[1] = 0
- // end if
- // do while sqlca.sqlcode = 0
- // cnt++
- // s_mpz.pzcode[cnt] = cur_pzcode
- // s_mpz.pzname[cnt] = cur_name
- // s_mpz.pzid[cnt] = cur_pzid
- // fetch cur_pz into :cur_pzcode,:cur_name,:cur_pzid;
- // loop
- // close cur_pz;
- return s_mpz
- end function
- public function integer add_configuretype (s_mtrlpz_array arg_s_ma, string arg_contfigtypename, integer arg_contfigtype, ref string arg_msg);Long ls_configuretypeid,ls_i
- ls_configuretypeid = f_sys_scidentity(0,"u_configure_type","contfigtypeid",arg_msg,TRUE,sqlca)
- IF ls_configuretypeid <= 0 THEN
- RETURN 0
- END IF
- INSERT INTO u_configure_type (contfigtypeid, contfigtypename , contfigtype ) Values (:ls_configuretypeid,:arg_contfigtypename,:arg_contfigtype);
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = '插入新配置类型失败'
- ROLLBACK;
- RETURN 0
- END IF
- //FOR ls_i = 1 TO UpperBound(arg_s_ma.pzid )
- // INSERT INTO u_configure_typemx (contfigtypeid, pzid ) Values (:ls_configuretypeid,:arg_s_ma.pzid[ls_i]);
- // IF sqlca.SQLCode <> 0 THEN
- // arg_msg = '插入新配置类型明细失败'
- // ROLLBACK;
- // RETURN 0
- // END IF
- //NEXT
- RETURN 1
- end function
- public function integer setdefaultpz (integer arg_flag, long arg_mtrlid, ref string arg_msg, long arg_cid);Long cnt = 0,cur_cid
- cur_cid = arg_cid
- IF arg_flag = 0 THEN
- //检查arg_cid是否是物料arg_mtrld的配置
- SELECT count(*) INTO :cnt FROM u_mtrl_configure Where Mtrlid = :arg_mtrlid AND cid = :arg_cid ;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = "检查物料配置ID失败"
- RETURN 0
- END IF
- IF IsNull(cnt) THEN cnt = 0
-
- //检查物料原来的默认配置数
- Long cnt1 = 0
- SELECT count(*) INTO :cnt1 FROM u_mtrl_configure Where Mtrlid = :arg_mtrlid AND DefaultPZ = 1;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = "查询物料默认配置失败"
- RETURN 0
- END IF
- IF IsNull(cnt1) THEN cnt1 = 0
-
- IF cnt = 0 THEN //如果arg_cid不是物料arg_mtrlid的配置
- IF cnt1 > 1 THEN //如果该物料有多于一个默认配置,则选他的最新的物料配置作为默认配置
- UPDATE u_mtrl_configure Set DefaultPZ = 0 Where Mtrlid = :arg_mtrlid AND DefaultPZ = 1;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = "初始化物料默认配置失败"
- ROLLBACK;
- RETURN 0
- END IF
- ELSEIF cnt1 = 1 THEN
- //如果物料已经有一个默认配置,则返回
- RETURN 1
- END IF
-
- //获得物料最新配置的id
- SELECT Max (cid) INTO :cur_cid FROM u_mtrl_configure Where Mtrlid = :arg_mtrlid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = "查找最新物料配置失败"
- RETURN 0
- END IF
- IF IsNull(cur_cid) OR cur_cid <= 0 THEN RETURN 1 //如果该物料没有配置,则返回
-
- ELSEIF cnt = 1 THEN //arg_cid是物料arg_mtrlid的配置
- IF cnt1 >= 1 THEN //取消物料原来的默认配置
- UPDATE u_mtrl_configure Set DefaultPZ = 0 Where Mtrlid = :arg_mtrlid AND DefaultPZ = 1;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = "初始化物料默认配置失败"
- ROLLBACK;
- RETURN 0
- END IF
- END IF
- END IF
-
- //把arg_cid设成默认配置
- UPDATE u_mtrl_configure Set DefaultPZ = 1 Where cid = :cur_cid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = "设置默认物料配置失败"
- ROLLBACK;
- RETURN 0
- END IF
- ELSE
- UPDATE u_mtrl_configure Set DefaultPZ = 0 Where cid = :cur_cid;
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = "设置默认物料配置失败"
- ROLLBACK;
- RETURN 0
- END IF
- END IF
- RETURN 1
- end function
- public function s_mtrlpzmx getpzmx (long arg_cid);s_mtrlpzmx s_mm
- //declare cur cursor for
- //SELECT
- // u_configure_code.pzid,
- // u_configure_codemx.pzcodemx,
- // u_configure_codemx.namemx,
- // u_configure_codemx.printid
- //FROM u_configure_code INNER JOIN
- // u_configure_codemx ON
- // u_configure_code.pzid = u_configure_codemx.pzid INNER JOIN
- // u_mtrl_configuremx ON
- // u_configure_codemx.printid = u_mtrl_configuremx.printid AND
- // u_configure_code.pzid = u_mtrl_configuremx.pzid
- //where u_mtrl_configuremx.cid = :arg_cid;
- //
- //open cur;
- //
- //long cnt = 0
- //long ls_pzid,ls_printid
- //string ls_pzcodemx,ls_namemx
- //fetch cur into :ls_pzid,:ls_pzcodemx,:ls_namemx,:ls_printid;
- //do while sqlca.sqlcode = 0
- // cnt++
- // s_mm.pzid[cnt] = ls_pzid
- // s_mm.pzcodemx[cnt] = ls_pzcodemx
- // s_mm.namemx[cnt] = ls_namemx
- // s_mm.printid[cnt] = ls_printid
- // fetch cur into :ls_pzid,:ls_pzcodemx,:ls_namemx,:ls_printid;
- //loop
- //
- //close cur;
- return s_mm
- end function
- on uo_mtrlpz.create
- call super::create
- TriggerEvent( this, "constructor" )
- end on
- on uo_mtrlpz.destroy
- TriggerEvent( this, "destructor" )
- call super::destroy
- end on
|