zoukankan      html  css  js  c++  java
  • 销售订单交货计划

    业务场景:销售订单行的交货计划,可以按订单行进行拆分交货,系统的拆分计划,在销售订单没有关联项目Id时,可以使用,有项目ID的销售订单行是不可以使用交货计划的。

    我主要分享下下面两个知识点,也可能是大家经常遇到的;

    1.交货计划的可编辑性:

    一般的按钮编辑都是在Form下写方法控制,但部分Form的可编辑性是在类中实现的,销售订单就是个例子:

    控制销售订单按钮可编辑性的类:SalesTableInteractionHelper

    比如行上的交货计划按钮就是在SalesTableInteractionHelper类中的isOpenOrderNotReturnNotProjectRelatedSalesLine中控制:

      private boolean isOpenOrderNotReturnNotProjectRelatedSalesLine()
        {
            return (salesTable.SalesType == SalesType::Sales || salesTable.SalesType == SalesType::Journal)
                 && salesLine.SalesStatus == SalesStatus::Backorder           // Open order status
                 && salesLine.SalesQty >= 0 ;                                 // No negative qty
                //当销售订单上的项目号有值时,也可以使用订单行上的交货计划按钮--Sunny Add start
                /*
                 && !salesTable.ProjId;                                     // not part of a project
                */
            //Sunny Add end
        }

    2.交货计划拆分行时,其新行上的字段从原行中复制而来,即会执行SalesLine上的InitFromSalesline方法,和initFromOrderLineWithMultipleDeliveries方法,一般新加的字段可在这两个方法中进行初始化;

    但例外的是,部分字段会被清空,比如项目Id,跟代码可以看到,这是因为系统再init方法中执行后,在后面的SalesLineType_Project类的初始化时会清空,如果需要带出项目类别,则我们可以重写此类下的初始化方法。当然这是一个字段,要是有其他字段也可类似找方法:

    //交货计划拆分时带出项目类别--
    [ExtensionOf(classstr(SalesLineType_Project))]
    final class SalesLineType_Project_Extension
    {
        void initValue()
        {
            SalesLine       saleslineOrig;
            ProjCategoryId  projCategoryId;
    
            saleslineOrig   = this.salesLine;
            projCategoryId  = saleslineOrig.ProjCategoryId;
    
            next initValue();
    
            if(!saleslineOrig.ProjCategoryId)
            {
                saleslineOrig.ProjCategoryId = projCategoryId;
            }
    
        }
    
    }

    一周没更新了。。。

  • 相关阅读:
    放大镜
    简单拖拽加边界处理加轨迹返回
    事件委托
    数组的方法
    数据处理
    数组去重
    字符串的操作方法
    函数的递归调用
    选择排序、冒泡排序
    Linux—shell中$(( ))、$( )、``与${ }的区别
  • 原文地址:https://www.cnblogs.com/sunny-technology/p/9415439.html
Copyright © 2011-2022 走看看