123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- $PBExportHeader$uf_warebalc_check_inoutflag.srf
- global type uf_warebalc_check_inoutflag from function_object
- end type
- forward prototypes
- global function integer uf_warebalc_check_inoutflag (long arg_storageid, datetime arg_balcdate, ref string arg_msg)
- end prototypes
- global function integer uf_warebalc_check_inoutflag (long arg_storageid, datetime arg_balcdate, ref string arg_msg);Long rslt = 1
- Long cnt = 0
- String ls_storagename
- SELECT storagename
- INTO :ls_storagename
- FROM u_storage
- Where storageid = :arg_storageid;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询操作失败,仓库名称'
- GOTO ext
- END IF
- //检查日期前
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_inware
- WHERE flag = 0 AND storageid = :arg_storageid
- AND indate <= :arg_balcdate ;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询操作失败,结存日期前是否有进仓单未审'
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '仓库['+ls_storagename+'],结存日期前有进仓单未审'
- GOTO ext
- END IF
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_outware
- WHERE flag = 0 AND storageid = :arg_storageid
- AND outdate <= :arg_balcdate ;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询操作失败,结存日期前是否有出仓单未审'
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '仓库['+ls_storagename+'],结存日期前有出仓单未审'
- GOTO ext
- END IF
- //检查日期后
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_inware
- WHERE flag = 1 AND storageid = :arg_storageid
- AND indate > :arg_balcdate ;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询操作失败,结存日期后是否有进仓单已审'
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '仓库['+ls_storagename+'],结存日期后有进仓单已审'
- GOTO ext
- END IF
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_outware
- WHERE flag = 1 AND storageid = :arg_storageid
- AND outdate > :arg_balcdate ;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询操作失败,结存日期后是否有出仓单已审'
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '仓库['+ls_storagename+'],结存日期后有出仓单已审'
- GOTO ext
- END IF
- //1.3检查调仓单
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM u_outware_move
- WHERE ( flag = 0 OR d_auditflag = 0 )
- AND ( sstorageid = :arg_storageid OR dstorageid = :arg_storageid )
- And ( outdate <= :arg_balcdate );
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询操作失败,日期:'+String(arg_balcdate,'yyyy-mm-dd hh:mm')+',前是否有调仓单未审'
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '仓库:'+ls_storagename+',日期:'+String(arg_balcdate,'yyyy-mm-dd hh:mm')+',前有('+String(cnt)+')调仓单未审'
- GOTO ext
- END IF
- //1.4 检查仓库外协进仓单(含返工单)
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM ow_wfjg_in INNER JOIN
- ow_wfjgmx_in_aft ON ow_wfjg_in.scid = ow_wfjgmx_in_aft.scid AND
- ow_wfjg_in.inwareid = ow_wfjgmx_in_aft.inwareid
- WHERE (ow_wfjg_in.flag = 0 )
- AND (ow_wfjg_in.indate <= :arg_balcdate)
- AND (ow_wfjgmx_in_aft.storageid = :arg_storageid)
- And (ow_wfjg_in.billtype = 4);
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询操作失败,日期:'+String(arg_balcdate,'yyyy-mm-dd hh:mm')+',前是否有仓库外协进仓单或仓库外协返工单未审'
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '仓库:'+ls_storagename+',日期:'+String(arg_balcdate,'yyyy-mm-dd hh:mm')+',前有('+String(cnt)+')仓库外协进仓单或仓库外协返工单未审'
- GOTO ext
- END IF
- //1.5 检查仓库外协发出单(含退回单)
- cnt = 0
- SELECT count(*)
- INTO :cnt
- FROM ow_wfjg_out INNER JOIN
- ow_wfjgmx_out ON ow_wfjg_out.scid = ow_wfjgmx_out.scid AND
- ow_wfjg_out.outwareid = ow_wfjgmx_out.outwareid
- WHERE (ow_wfjg_out.flag = 0 )
- AND (ow_wfjg_out.outdate <= :arg_balcdate)
- AND (ow_wfjgmx_out.storageid = :arg_storageid)
- And (ow_wfjg_out.billtype = 4);
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = '查询操作失败,日期:'+String(arg_balcdate,'yyyy-mm-dd hh:mm')+',前是否有仓库外协发出单或仓库外协退回单未审'
- GOTO ext
- END IF
- IF cnt > 0 THEN
- rslt = 0
- arg_msg = '仓库:'+ls_storagename+',日期:'+String(arg_balcdate,'yyyy-mm-dd hh:mm')+',前有('+String(cnt)+')仓库外协发出单或仓库外协退回单未审'
- GOTO ext
- END IF
- ext:
- RETURN rslt
- end function
|