壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1057|回复: 1

[扩展开发|报表开发] 自助申请领料单填写数量后校验库存数量是否足够

[复制链接]
发表于 2007/8/18 22:54:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
问题由来:
    自助申请作为领料单使用的时候在流程状态变为APPR或者更改状态为APPR的时候,系统会自动去判断库存数量是否满足要求,如果不满足要求就提示,现在用户要求在填写物料数量的时候就做判断。

实现思路:
    在MRLINE的qty字段编写校验类。

说明:
   以下代码只是实现思路,并为实现完善的业务逻辑:

源码:
public void action() throws MXException, RemoteException {
  super.action();
  MRLine mrline = (MRLine) getMboValue().getMbo();
    if (getMboValue().isNull())
   return;

  //add by w39 for MRline 数量检查
  double dcurbal = 0.0;//库存量
  double reservedqty = 0.0;//预留量
  double mrlineqty = getMboValue().getDouble();
  String stiemnum = mrline.getString(\"itemnum\");

  MRLineRemote mrlineremote = (MRLineRemote)getMboValue().getMbo();

  if (mrlineqty > 0) {
   // 获得库存余量
   SqlFormat sqlformat = new SqlFormat(\"itemnum=:1\");
   sqlformat.setObject(1, \"invbalances\", \"itemnum\", stiemnum);
   MboRemote mbosetremote = mrline.getMboSet(\"$curbal\", \"INVBALANCES\", sqlformat.format()).getMbo(0);
   SqlFormat sqlformat1 = new SqlFormat(\"itemnum=:1\");
   sqlformat.setObject(1, \"invreserve\", \"itemnum\", stiemnum);
   MboRemote mbosetremote1 = mrline.getMboSet(\"$reservedqty\", \"INVRESERVE\", sqlformat.format()).getMbo(0);
   if(null != mbosetremote){
    dcurbal = mbosetremote.getDouble(\"curbal\");
    if(null != mbosetremote1){
     reservedqty = mbosetremote1.getDouble(\"reservedqty\");
    }else{
     reservedqty = 0.0;
    }
    //System.out.println(\"dcurbal=\"+dcurbal+\" reservedqty=\"+reservedqty+\" dcurbal - dreserveqty=\"+(dcurbal - reservedqty));
    if((dcurbal - reservedqty) < mrlineqty ){
     throw new MXApplicationException(\"inventory\", \"negativeAvailisNotAllowed\");
    }
   }
  }else{
   return;
  }
}

另外一个思路就是直接调用实现状态变为APPR时候的检查代码。大家有兴趣可以讨论一下
发表于 2007/8/20 15:43:02 | 显示全部楼层
喜欢另外一个直接调用状态修改为APPR.在库存配置里面设为库存数量不可为负数.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 03:52 , Processed in 0.012818 second(s), 14 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表