NetSuite中Purchase Contract的奥秘

由于项目上的潜在需求,最近研究了一下系统中Purchase Contract的功能,在此与大家分享研究之心得。Purchase Contract,可以理解为采购协议/框架协议/采购合同,整体逻辑为通过Purchase Contract来确立用户与供应商之间对于Payment Terms支付条款和Item Price价格的协议签订,而后在Purchase Order上可指定所需要的采购协议。

在此,我们打算采用“2+3”战略方式完成准备工作与实践过程~

准备工作两步走:

  1. NetSuite中启用Purchase Contract功能;
  2. 从标准Form出发,自定义Purchase Contract的Form,且Permission中添加Purchase Contract的相关权限;

具体实践三步走:

  1. 创建Purchase Contract;
  2. 将创建的Purchase Contract应用至Purchase Order;
  3. 可再次返回刷新相应Purchase Contract查看Related Records,结束。

准备工作如下:

启用该功能,我们需按照Setup-Company-Enable Features路径找到Purchase Contract,勾选保存,具体可参考下图:

启用功能

紧接着,需要找到Standard Purchase Contract,自定义一个Purchase Contract Form,将其设置为相应角色的首选Form;

自定义Form,在对应角色前勾选首选

同时,需要在对应角色的Permission中添加Purchase Contract的相关权限,这里设置为Full;

Permissions——Transactions——Purchase Contract(Full)

准备工作至此全部结束~接下来我们就详细说说如何使用该功能并且将它应用至PO上吧~

以管理员的经典中心为例,路径为Transactions——Purchases——Enter Purchase Contracts,位置在平日输入采购订单的下方,点击后就进入了创建Purchase Contract的界面,整个界面和PO有点像,大家可不要看花了眼呀~

进入路径

要想创建一个Purchase Contract,我们先来了解下页面上有哪些信息是需要我们重点关注的。

Purchase Contract创建界面

先说Main Line的第一部分,

Effectivity Based On表示的是你想要该协议生效的日期基于哪个日期?下拉框中有两个选择,Expected Receipt Date代表基于期望收货的日期,Order Date代表基于采购订单的日期。

这里举一个简单的例子,假设协议生效日期为2022/11/22——2022/11/30,我在2022/11/22创建了PO,且Expected Receipt Date在2022/12/1,此时Order Date就在协议生效期之内,而Expected Receipt Date在协议生效期之外。

Start Date代表协议开始生效日期,End Date代表协议到期日。

Minimum Amount代表协议期间必须采购的最小总金额,但这里并非指一个订单的最小总金额;Maximum Amount则代表最大金额,超过金额可能会涉及到上级审批。但其实这两个字段在这里并无实际意义,因为我们和供应商的约定在前,所以这里只是帮我们有一个记录的作用。

第二部分,

Summary Box中的三个Amount值都是挂靠在此协议下的所有PO上已实现的总金额不仅仅只计算一个PO的Amount(除非该协议只对应一个PO)Purchased Amount表示所有相关PO的Amount,Received Amount表示所有已收货的Amount,Billed Amount表示供应商所有已开票的Amount。

第三部分,

Department,Location,Class的信息可根据需求进行填写,如果这里填写了,在PO上选择该协议时,系统将会自动带出LDC的相关信息。

界面上的其他的信息类似于Vendor/Employee等按照平时填写PO时填写即可。

再说说页面下方Detail的地方,在Item Sublist下是我们要填写的Item Line信息及分层定价规则,这里选择相应的Item名称后,该Item的Base Rate会根据之前维护的Item信息自动带出,当然这里是可以根据与供应商的商定来修改的,简单理解就是和供应商商量后确定的,数量为1且不给折扣时的单价。

接下来的重头戏则是这个带有小铅笔的Additional Pricing,是我们输入分层定价规则的部分。

Calculate Quantity Discounts计算数量折扣部分,我们可以看到有三个不同的选项:

by Line Quantity,代表我们按照单个采购订单行的Item数量进行折扣计算,大家下面所看到PO就是我在协议中针对Item选择的是by Line Quantity的计算方式,所以当我的采购订单上写了25时,系统就按照25的数量进行计算,对应定价规则中的Price为19。

by Line Quantity计算数量折扣

by Overall Item Quantity, 这种方式代表按照总Item的数量进行折扣计算,即定价是基于同一个PO上相同Item所有采购订单行的总数。应用场景是在同一个采购订单上如果多次订购同一商品,则采购订单上所有行的Item总数量决定了我所能获得的数量折扣。在下面的截图中,大家能看到一个PO中包含两行同一个Item,因此在计算时它不会按照500和10分别去找对应的定价,而是会按照500+10=510来计算,所以这里的折扣单价也变为了18.

by Overall Item Quantity计算数量折扣

by Overall Contracted PO Item Quantity这种方式则表明我们的定价是基于相同Item的所有协议采购订单行计算折扣。例如,如果同一个协议应用到多个PO上,且每个PO上都包含同一Item,那么所有这些采购订单的所有数量将被加和来计算定价。简单理解为用(甲订单中的A货品数量+乙订单的A货品数量+丙订单中的A货品数量)的总数量带入定价规则来计算折扣值。

Input Using部分,选择Rate or Lot,则我们在行上输入Rate or Lot Price对应的是20/19/18的折扣价,系统帮我们计算折扣比率;若选择的是Percent,则我们在行上只能输入Percent Discount,类似-5%/-10%的折扣百分比,系统帮助我们计算折扣价,这个根据实际进行选择和填写即可。

Input Using选项

关于Price Using的3个选项,也需要说一下。大家可以看到某个协议中From Quantity部分是我对于数量的分层0——21——51,当选择Rate时,系统会使用单一的价格,0——20每件20元,21——50每件19元,51起每件18,在对应的数量范围内所有的Item都为同一个价格。假设我的数量是25,那对应的就是From QTY为21的那一行,所以我的25件Item全部都按照19的折扣价来计算。但是这里我想要举一个极端的例子,假设我的分层定价规则为0(1元)——100(0.5元)——500(0.4元),当我采购数量为99时,我的采购总价为99元,但是当我采购数量为101时,我的采购总价计算为101*0.5=50.5元,数量相差2,但是采购总价却相差几十元。

按照Rate计算

当选择第二种Marginal Rate时,计算方式则完全不同,它的计算方式有点类似于咱们个人所得税的计算方法,超额累进的计算方式。假设依旧是0——21——51的分层规则,这个时候如果我要购买的数量是25,那此时的计算方式则是20件*20元(不打折)+5件*19(5%折扣)求总和,而PO上的单价也会变成平均值(20*20+5*19)/25=19.8元,不再是25件同一个价格19,而是跨层进行累进计算。

第三种假设我还是购买25件Item,我们的Price对应的依旧是19 ,这时如果选择了Lot Rate计算Price,它的计算则是19的Amount/25=0.76,那么我的PO上对应Item行的Amount=19,Unit Price=0.76。

其实我们可以理解为前两种Price是我给系统提供数量和单价,系统帮我计算采购总金额,而第三种Price则是我提供给系统这一批Item的总金额和数量,19就代表这一批Item的总价是19,系统帮我计算每一件Item的平均单价。

以上就是Purchase Contract对于分层价格的协定,关于Payment Terms支付条款的协定在Terms的页签下,与供应商确定后,可在这里进行选择。

根据约定选择对应Payment Terms

另外这里还有一点是关于“折扣”的额外设置,这里可以看到我在Discount下多维护了一行,代表的意思就是当我的某个协议下所关联的PO最低Amount达到10000时,我们可以再额外让出1%的折扣。

Discount折扣维护

此时,根据与供应商的协定就完成了我们的Purchase Contract,接下来就是将创建的Purchase Contract应用至Purchase Order,也就是当我们新创建一个PO时,需要选择对应的协议,才能将协议上Item对应的折扣价与创建的PO进行挂钩。

创建PO界面 

创建PO时,在表单头字段中选择对应Purchase Contract,PO与协议相关联的Location/Department/Class信息都可以从对应的协议上直接带过来,对应的Item行上的LDC信息也是默认的,协议的条款则适用于整个PO。另外,当我们编辑Item行的信息时你会发现我们只能对Quantity数量进行更改,而对于Unit Price单价来说,我们是不可以更改的,这一点也是Purchase Contract的限制点。

PO完成保存后,当我们再回到Purchase Contract,可刷新界面,在Related Records页签下,可以看到与该协议相关的所有PO已经存在,在Summary Box中的Amount也会自动更新,这就是所有的步骤。

最后,我们放一个完整的案例以供大家实践,参考:

新创建一个Purchase Contract#2,对应的3种Item在未得折扣时的Price均为20。

A货品的定价规则如上图,A货品将会出现在同一个PO上,存在多行,所以Calculated QTY Discounts方式为by Overall Item Quantity, 它需要计算同一个PO,挂了Purchase Contract#2的所有A货品的总数量;Price Using选择Rate说明Item确定了数量后,所有Item保持一个价格

B货品的定价规则如上图,此货品将会出现在同一个PO上,存在多行,所以Calculated QTY Discounts方式为by Overall Item Quantity, 它需要计算同一个PO,挂了Purchase Contract#2的所有B货品的总数量;Price Using选择Marginal Rate说明数量确定后将采用累进的计算方式,根据数量跨层定价。

C货品的定价规则如上图,此货品将会出现在同一个PO上,存在多行,所以Calculated QTY Discounts方式为by Overall Item Quantity, 它需要计算同一个PO,挂了Purchase Contract#2的所有C货品的总数量;Price Using选择Lot Rate说明确定了Item数量后,会直接对应到这一批C货品的Amount,系统将计算单个C货品的价格。

此时创建PO,A/B/C货品均不止出现一行,我们只看Purchase Contract#2对应行:

A:计算总数量500+10=510,对应折扣单价为18,总额9180

B:数量500,对应折扣单价为(101*20+399*19)/500=19.202,总额9601

C:数量500,对应总额为19,则计算后单价为19/500=0.038

回到Purchase Contract#2,对应Purchased Amount应为9180+9601+19=18800

在Purchase Contract#2 Related Records下可看到对应PO及Amount信息,Summary Box中也有Purchased Amount。

分享到这里就结束啦,如果大家有新的补充,欢迎随时探讨~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值