123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- $PBExportHeader$f_mtrl_storageid.srf
- global type f_mtrl_storageid from function_object
- end type
- forward prototypes
- global function long f_mtrl_storageid (long arg_scid, long arg_mtrlid)
- end prototypes
- global function long f_mtrl_storageid (long arg_scid, long arg_mtrlid);Long rst_storageid
- Long cnt
- rst_storageid = 0
- //1.先取默认存放仓库
- SELECT top 1 u_mtrl_storage.storageid
- INTO :rst_storageid
- FROM u_mtrl_storage INNER JOIN
- u_storage ON u_mtrl_storage.storageid = u_storage.storageid
- WHERE (u_storage.inuse = 1)
- AND (u_storage.ifmrp = 1)
- AND (u_mtrl_storage.dft = 1)
- AND (u_storage.scid = :arg_scid)
- And (u_mtrl_storage.mtrlid = :arg_mtrlid);
- IF sqlca.SQLCode <> 0 THEN
- rst_storageid = 0
- END IF
- IF IsNull(rst_storageid) THEN rst_storageid = 0
- //2.没有默认存放,选存放仓库
- IF rst_storageid = 0 THEN
- SELECT top 1 u_mtrl_storage.storageid
- INTO :rst_storageid
- FROM u_mtrl_storage INNER JOIN
- u_storage ON u_mtrl_storage.storageid = u_storage.storageid
- WHERE (u_storage.inuse = 1)
- AND (u_storage.ifmrp = 1)
- AND (u_storage.scid = :arg_scid)
- And (u_mtrl_storage.mtrlid = :arg_mtrlid);
- IF sqlca.SQLCode <> 0 THEN
- rst_storageid = 0
- END IF
- IF IsNull(rst_storageid) THEN rst_storageid = 0
-
- END IF
- //3.没有存放,选最后一次进仓
- IF rst_storageid = 0 THEN
- SELECT top 1 u_inware.storageid INTO :rst_storageid
- FROM u_inware,u_inwaremx,u_storage
- WHERE u_inware.scid = u_inwaremx.scid
- AND u_inware.inwareid = u_inwaremx.inwareid
- AND u_inware.storageid = u_storage.storageid
- AND u_inware.flag = 1
- AND u_inwaremx.mtrlid = :arg_mtrlid
- AND u_inware.scid = :arg_scid
- AND u_storage.ifmrp = 1
- AND u_storage.ifscll = 1
- Order By u_inware.inwareid Desc;
- IF sqlca.SQLCode <> 0 THEN rst_storageid = 0
- IF IsNull(rst_storageid) THEN rst_storageid = 0
- END IF
- /*
- SELECT top 1 u_inware.storageid INTO :rst_storageid
- FROM u_inware,u_inwaremx,u_storage
- WHERE u_inware.scid = u_inwaremx.scid
- AND u_inware.inwareid = u_inwaremx.inwareid
- AND u_inware.storageid = u_storage.storageid
- // AND u_inware.billtype = 1
- AND u_inware.flag = 1
- AND u_inwaremx.mtrlid = :arg_mtrlid
- AND u_inware.scid = :arg_scid
- and u_storage.ifmrp = 1
- and u_storage.ifscll = 1
- Order By u_inware.inwareid Desc;
- IF sqlca.SQLCode <> 0 THEN rst_storageid = 0
- IF IsNull(rst_storageid) THEN rst_storageid = 0
- IF rst_storageid = 0 THEN
- SELECT count(*) INTO :cnt
- FROM u_mtrl_storage,u_storage
- WHERE u_mtrl_storage.storageid = u_storage.storageid
- AND u_mtrl_storage.mtrlid = :arg_mtrlid
- AND u_storage.scid = :arg_scid;
- IF sqlca.SQLCode <> 0 THEN cnt = 0
- IF IsNull(cnt) THEN cnt = 0
-
- // IF cnt <> 1 THEN
- // rst_storageid = 0
- // ELSE
- SELECT top 1 u_mtrl_storage.storageid INTO :rst_storageid
- FROM u_mtrl_storage,u_storage
- WHERE u_mtrl_storage.storageid = u_storage.storageid
- AND u_mtrl_storage.mtrlid = :arg_mtrlid
- AND u_storage.scid = :arg_scid;
- IF sqlca.SQLCode <> 0 THEN rst_storageid = 0
- // END IF
- END IF
- */
- RETURN rst_storageid
- end function
|