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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4641|回复: 1

使用callout来限制收货数量,使其不超过订单数量的5%

[复制链接]
发表于 2006/8/23 16:21:42 | 显示全部楼层 |阅读模式

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

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

x
主要修改文件@version $Id: CalloutInOut.java,v 1.14 2006/01/28 01:28:28 jjanke Exp $中的一个方法。代码如下,如果大家有更好的方法,请告诉我阿。


  1. public String qty (Properties ctx, int WindowNo, MTab mTab, MField mField, Object value)
  2.         {
  3.                 String text="";//我在这里加了一个变量,用来返回提示信息给操作员。
  4.                 if (isCalloutActive() || value == null)
  5.                         return text;//原来是return "";
  6.                 setCalloutActive(true);

  7.                 int M_Product_ID = Env.getContextAsInt(ctx, WindowNo, "M_Product_ID");
  8.                 //        log.log(Level.WARNING,"qty - init - M_Product_ID=" + M_Product_ID);
  9.                 BigDecimal MovementQty, QtyEntered;
  10.                
  11.                 //        No Product
  12.                 if (M_Product_ID == 0)
  13.                 {
  14.                         QtyEntered = (BigDecimal)mTab.getValue("QtyEntered");
  15.                         mTab.setValue("MovementQty", QtyEntered);
  16.                 }
  17.                 //        UOM Changed - convert from Entered -> Product
  18.                 else if (mField.getColumnName().equals("C_UOM_ID"))
  19.                 {
  20.                         int C_UOM_To_ID = ((Integer)value).intValue();
  21.                         QtyEntered = (BigDecimal)mTab.getValue("QtyEntered");
  22.                         MovementQty = MUOMConversion.convertProductFrom (ctx, M_Product_ID,
  23.                                 C_UOM_To_ID, QtyEntered);
  24.                         if (MovementQty == null)
  25.                                 MovementQty = QtyEntered;
  26.                         boolean conversion = QtyEntered.compareTo(MovementQty) != 0;
  27.                         log.fine("UOM=" + C_UOM_To_ID
  28.                                 + ", QtyEntered=" + QtyEntered
  29.                                 + " -> " + conversion
  30.                                 + " MovementQty=" + MovementQty);
  31.                         Env.setContext(ctx, WindowNo, "UOMConversion", conversion ? "Y" : "N");
  32.                         mTab.setValue("MovementQty", MovementQty);
  33.                 }
  34.                 //        No UOM defined
  35.                 else if (Env.getContextAsInt(ctx, WindowNo, "C_UOM_ID") == 0)
  36.                 {
  37.                         QtyEntered = (BigDecimal)mTab.getValue("QtyEntered");
  38.                         mTab.setValue("MovementQty", QtyEntered);
  39.                 }
  40.                 //        QtyEntered changed - calculate MovementQty
  41.                 else if (mField.getColumnName().equals("QtyEntered"))
  42.                 {   
  43.                        
  44.                         int C_UOM_To_ID = Env.getContextAsInt(ctx, WindowNo, "C_UOM_ID");
  45.                         QtyEntered = (BigDecimal)value;
  46.                         //如果变更数值超过5%,则无效
  47.                         Integer C_OrderLine_ID = Env.getContextAsInt(ctx, WindowNo, "C_OrderLine_ID");
  48.                         //        Get Order Details
  49.                         MOrderLine ol = new MOrderLine (ctx, C_OrderLine_ID.intValue(), null);
  50.                         if (ol.get_ID() != 0)
  51.                         {                                               
  52.                                 BigDecimal MovementQtyo = ol.getQtyOrdered().subtract(ol.getQtyDelivered());       
  53.                                 if (QtyEntered.floatValue()/MovementQtyo.floatValue()>1.05)
  54.                                 {
  55.                                 QtyEntered =MovementQtyo;                                       
  56.                                 mTab.setValue("QtyEntered", MovementQtyo);
  57.                                 text="收货数量超过5%...........";
  58.                                 }
  59.                                 else QtyEntered = (BigDecimal)value;
  60.                                
  61.                                 }
  62.                       //如果变更数值超过5%,则无效

  63.                         MovementQty = MUOMConversion.convertProductFrom (ctx, M_Product_ID,
  64.                                 C_UOM_To_ID, QtyEntered);
  65.                         if (MovementQty == null)
  66.                                 MovementQty = QtyEntered;
  67.                        
  68.                         boolean conversion = QtyEntered.compareTo(MovementQty) != 0;
  69.                         log.fine("UOM=" + C_UOM_To_ID
  70.                                 + ", QtyEntered=" + QtyEntered
  71.                                 + " -> " + conversion
  72.                                 + " MovementQty=" + MovementQty);
  73.                         Env.setContext(ctx, WindowNo, "UOMConversion", conversion ? "Y" : "N");
  74.                        
  75.                         mTab.setValue("MovementQty", MovementQty);
  76.                 }
  77.                 //        MovementQty changed - calculate QtyEntered
  78.                 else if (mField.getColumnName().equals("MovementQty"))
  79.                 {
  80.                         int C_UOM_To_ID = Env.getContextAsInt(ctx, WindowNo, "C_UOM_ID");
  81.                         MovementQty = (BigDecimal)value;
  82.                         QtyEntered = MUOMConversion.convertProductTo (ctx, M_Product_ID,
  83.                                 C_UOM_To_ID, MovementQty);
  84.                         if (QtyEntered == null)
  85.                                 QtyEntered = MovementQty;
  86.                         boolean conversion = MovementQty.compareTo(QtyEntered) != 0;
  87.                         log.fine("UOM=" + C_UOM_To_ID
  88.                                 + ", MovementQty=" + MovementQty
  89.                                 + " -> " + conversion
  90.                                 + " QtyEntered=" + QtyEntered);
  91.                         Env.setContext(ctx, WindowNo, "UOMConversion", conversion ? "Y" : "N");
  92.                         mTab.setValue("QtyEntered", QtyEntered);
  93.                 }
  94.                 //
  95.                 setCalloutActive(false);
  96.                 return text;//原来是return ""
  97.         }        //        qty
复制代码
Jojo 该用户已被删除
发表于 2006/8/29 19:36:58 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2025/11/29 09:05 , Processed in 0.016221 second(s), 16 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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