技巧集锦004:与WMS对接后存盘拦截方案

拦截截图:

解决方案:

1.创建SQL存储过程:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[KK_CGRK_SAVE_CHECK] 	
	 @wmsdjbh VARCHAR(20) 
	,@Shl  INT 
	,@Count INT
	,@outmsg VARCHAR(200) OUTPUT
AS  

DECLARE @wmskp_count INT  --WMS返回行数
       ,@wmskp_shl   INT  --WMS返回数量   

--WMS返回情况
SELECT @wmskp_count = COUNT(*) FROM INT_WMS_CGRK_BILL WHERE DJBH =@wmsdjbh
SELECT @wmskp_shl   = SUM(ISNULL(sl,0)+ISNULL(QXSHL,0)) FROM INT_WMS_CGRK_BILL WHERE DJBH =@wmsdjbh


SET @outmsg  =''
--比较
--ERP开票行数与WMS返回行数与提单行数不符
IF (ISNULL(@Count,0) = 0 
   OR ISNULL(@wmskp_count,0) = 0
   )
   OR (ISNULL(@Count,0) != ISNULL(@wmskp_count,0)
      )
BEGIN
	SELECT @outmsg = 'WMS上架单号:'+LTRIM(RTRIM(REPLACE(@wmsdjbh,'SKKM','')))+CHAR(10)+CHAR(13) 
				   +'WMS返回行数:'+LTRIM(RTRIM(CONVERT(CHAR(10),ISNULL(@wmskp_count,0))))+CHAR(10)+CHAR(13)
				   +'入库提单  行数:'+LTRIM(RTRIM(CONVERT(CHAR(10),ISNULL(@Count,0))))+CHAR(10)+CHAR(13)
				   +'操作提示:行数不匹配,请检查!'
END
ELSE
BEGIN
	--ERP开票数量总和与WMS返回数量总和与提单数量总和不符
	IF (ISNULL(@Shl,0) = 0 
	   OR ISNULL(@wmskp_shl,0) = 0
	   )
	   OR (ISNULL(@Shl,0) != ISNULL(@wmskp_shl,0)
		  )
	BEGIN
		SELECT @outmsg = 'WMS上架单号:'+LTRIM(RTRIM(REPLACE(@wmsdjbh,'SKKM','')))+CHAR(10)+CHAR(13) 
					   +'WMS返回数量:'+LTRIM(RTRIM(CONVERT(CHAR(10),ISNULL(@wmskp_shl,0))))+CHAR(10)+CHAR(13)
					   +'入库提单  数量:'+LTRIM(RTRIM(CONVERT(CHAR(10),ISNULL(@Shl,0))))+CHAR(10)+CHAR(13)
					   +'操作提示:数量不匹配,请检查!'
	END
	ELSE
	BEGIN
		SELECT @outmsg ='验证通过'
	END
END

2.创建SQL宏:

3.修改存盘拦截函数:

function uf_saveCheck() {
	//原始的注释掉
	//return sys_saveCheck(); 
	var ret = sys_saveCheck();
	if ( ret ){	
		//增加存盘拦截  
		//判断wms返回行数,与入库提单行数 是否一致
		//判断wms返回数量总和,与入库提单数量总和 是否一致			
		//求提单数量+取消数量之和
		var tmpshl = 0;
		for(var i =0; i < ds_ddmx.recordCount; i++){ 
			tmpshl += ds_ddmx.getValueAt(i,"Num") + ds_ddmx.getValueAt(i,"CancelNum");
		}
		
		var params ={};
		params.wmsdjbh = ds_ddmx.field("KpBillCode").value; 
		params.Shl     = tmpshl;
		params.count   = ds_ddmx.recordCount;		
		var outmsg = DBUtil.uniqueValue('SQL_KK_CGRK_SAVE_CHECK',params); 
		if (outmsg != "验证通过"){
			alert(outmsg);
			return false;
		}	
		return true;
	}else{
		return false;
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值