zoukankan      html  css  js  c++  java
  • Axapta物流模块深度历险(三)

    价格和折扣
    也许是没见过世面的缘故,感觉Axapta的价格和折扣有些太复杂了,一头扎进去好悬没淹死俺.怎么理清这个思路还真是个问题.采购和销售对称,只看一个方面就差不多了.
    概述
    折扣和价格有两个考察的方向,从产品的角度和从客户的角度.
    从产品的角度:某个或者某些或者全部产品在满足一定的数量和时间的条件下给某个或者某些或者全部客户一定的折扣.
    从客户的角度:某个或者某些或者全部客户在满足一定的数量和时间的条件下有某个或者某些或者全部产品一定的折扣.
    上述的设定的操作路径如下:
    应收账款->设置->价格/折扣->料品折扣组
    应收账款->设置->价格/折扣->客户价格/折扣组
    从上面的名称看,料品只有折扣组,没有价格组,也就是说一组料品不能共享一个价格.这样在客户价格/折扣组设定价格的时候就不能针对某个料品组设定了,只能一个一个料品来.
    通过
    应收账款->设置->价格/折扣->客户价格/折扣组 这个操作路径就可以找到设定客户价格/折扣组,使某个客户组享用一定产品的特价或者折扣.

    上面对话框中有四个选项,具体的说明如下:
    价格组:设定一个价格组,该价格组可以包含一个或多个产品,由于没有产品价格组,只能一个个产品指定了,在客户价格/折扣组的这个操作页面建立的组,可以用在客户属性里,这样这个客户就有了这个价格/折扣组所包含的产品/产品组的折扣或者特价.
    单行折扣组:作用跟价格组一样,设定一个组,供客户属性那个地方使用,当然也可以在料品折扣组中引用.行折扣只应用在当前行,只有当前行满足了指定的数量才可以应用.
    多行折扣组:如果多行的数量之和满足了指定的数量要求同样会应用该折扣.比如指定一个产品组GroupA,在数量达到100个的时候,享受某个折扣,那么如果有两个产品A,B属于GroupA,某客户属于该客户多行折扣组,在给该客户开销售订单的时候,如果两个订单行,一行A产品80个,一行B产品20个,这时A,B两行都会采用多行折扣.
    总折扣组:当订单数量达到某个金额的时候,享受一定的折扣.总折扣组只能应用于所有产品,也就是说如果我是客户,开了一个有100行明细的销售订单,对应100个产品,我不能设定针对其中的98个产品达到某个金额的时候享受什么样的折扣.
    料品折扣组的设定跟客户折扣/价格组的设定相对,不过由于料品没有价格组,总折扣不能用于部分料品,所有料品没有价格组和总折扣组的概念.
    OK,到这里,价格组和折扣组的概念应该差不多了,两个考察方向,客户价格/折扣组,料品折扣组.
    价格
    先来看相对单纯一些的价格问题,因为没有料品价格组
    针对某个客户开销售订单的时候,料品的单价到底应该怎么取那?
    根据前面的描述,有如下四种情况可以获取价格(应收账款->客户->贸易协议->销售价处设定):
    1.某个客户在满足一定数量的情况下享有某个产品的特价
    2.某个客户属于某个客户价格组,该客户价格组指定了某些产品在满足一定数量的情况下采用特定的价格,于是该客户可以采用该价格.
    3.某个产品做为全部客户的一分子,如果针对全部客户指定了某些产品在满足一定数量的情况下采用特定的价格,该客户也可以采用该价格.
    4.没有针对以上三种情况设定的产品,直接取用产品属性中的销售价格.
    本来按照正常的思维逻辑,按照上面的顺序取用价格也就没什么问题了.但是Axapta的查找下一个的逻辑让其变得有些复杂,举例如下,假设有客户CustomerA,料品ItemA,客户价格组CusterGroupA
    CustomerA直接享用ItemA特价的情况如下:
    数量                价格                查找下一个                编号
    100                    5.00元                是                            1
    200                    4.50元                是                            2
    300                    4.00元                是                            3

    因CustmerA属于CustomerGroupA享用ItemA特价的情况如下:
    数量                价格                查找下一个                编号
    100                    5.00元                是                            4
    200                    4.50元                是                            5
    300                    3.00元                是                            6

    现在CustomerA要购买ItemA  450个,价格会是多少?按照我的想法,既然450个离300个最近并且由于指定了针对某个具体客户的价格,当然应该是编号3的价格,其实不是的.Axapta的逻辑是从编号1一直搜到第一个"查找下一个"为假的记录,在之前的记录中去价格最低的一个,也就是说,如果编号为3的"查找下一个"为假,那么价格将取用4.50元,以此类推,上述例子中应该取用编号为6的价格3.00元.
    折扣:
    由于有料品折扣组,并且折扣分为单行和多行,问题稍微复杂了一些.
    对于某个客户,取用折扣的可能有如下几种.
    1.客户针对某个产品满足一定数量的情况下享受一定的折扣.
    2.客户针对某个产品折扣组在满足一定数量的情况下享受一定的折扣,如果某个产品属于改组,当购买这个产品的时候也可以享受一定的折扣.
    3.客户属于某个客户折扣组,该折扣组包含一些产品,对于各个产品在达到一定的数量可以享受一定的折扣,该客户也可以享受其中包含的产品的折扣.
    4.客户属于某个客户折扣组,该客户折扣组包含一些料品折扣组,在达到指定数量时,该客户也可以享受属于该料品折扣组的产品的折扣.
    举例如下:
    客户CustomerA,客户折扣组CoustomerGroupA,料品ItemA,料品折扣组ItemGroupA
    Customer直接享有ItemA的折扣情况
    数量            折扣额        折扣率        查找下一个
    100                5.00元        10%                是                        1
    100                6.00元        6%                  是                        2
    Customer直接享有ItemGroupA的折扣情况
    数量            折扣额        折扣率        查找下一个
    100                5.00元        10%                是                        3
    100                6.00元        6%                  是                        4

    Customer因属于CusomterGroupA而享有的ItemA的折扣情况
    数量            折扣额        折扣率        查找下一个
    100                5.00元        10%                是                        5
    100                6.00元        6%                  是                        6
    Customer因属于CusomterGroupA,CustomerGroupA包含ItemGroupA而享有的对产品ItemA的折扣情况
    数量            折扣额        折扣率        查找下一个
    100                5.00元        10%                是                        7
    100                6.00元        6%                  是                        8
    Axapta对折扣的处理逻辑是从编号1开始,知道遇到第一个"查找下一个"为假的位置,所有的折扣额和折扣率分别累加.
    多行折扣和单行折扣的设定方式类似,不过好像多行折扣只能应用于产品折扣组,文档上没有提到这一点,不过当试图对某个产品设定多行折扣的时候,它告诉俺不能那样做,ft.
    至于总折扣,相对简单得多了,当订单总金额达到一定数目时,给整张订单的金额取个折扣.
    另外,多行折扣和总折扣不能自动应用到订单中,必须通过订单行右边的功能按钮,计算,点击 多行折扣和总折扣才会生效.
    还要注意的就是如果某个客户对某个产品同时享有单行折扣和多行折扣,Axapta咋处理那?
    通过      应收账款->设置->参数设置->价格选项卡,其中有个折扣选项,一共有六个待选项.
    行:只取用单行折扣
    多行:只取用多行折扣
    行与多行的最小值
    行与多行的最大值
    行+多行
    行*多行
    OK,差不多就这些东西了,说实在的,感觉还真复杂,至于吗?

  • 相关阅读:
    iptables单独记录一个日志文件
    centos7安装kvm
    查看一个启动的程序安装位置
    mysql-audit
    select 导出数据以|分割
    Codeforces 1105E 最大独立集 状态DP 中途相遇法
    Codeforces 1140E DP
    Codeforces 1152D DP
    GYM 101933E 状态压缩 + 记忆化搜索
    Codeforces 1151E 统计贡献
  • 原文地址:https://www.cnblogs.com/Farseer1215/p/442591.html
Copyright © 2011-2022 走看看