订单单别多达13种——通过代码阅读业务逻辑与管理哲学

业务员下订单,要思考 如下情况:

 if ( 单价 >0 )

{

       if  ( 部门 == 内贸 )

      {

          if (产品状态 ==  返修)

          {

            下国内返修订单.work();

          }

          else  if  (产品状态 == 试产)

          {

             下试产订单.work();

          }

          else  if  (产品状态 == 经济型)

          {

             下经济型订单.work();

          }

          else  if  (产品状态 == 呆滞品)

          {

             下呆滞品订单.work();

          }

          else  if  (产品状态 == 代工型)

          {

             下代工型订单.work();

          }

          else  if  (产品状态 == 有库存)

          {

             下出库存订单.work();

          }

          else  if  (产品状态 == 备料)

          {

             下备料订单.work();

          }

      }

    else   //外贸

     {

          if (产品状态 ==  返修)

          {

            下国外返修订单.work();

          }

          else  if  (产品状态 == 试产)

          {

             下试产订单.work();

          }

          else  if  (产品状态 == 经济型)

          {

             下经济型订单.work();

          }

           else  if  (产品状态 == 代工型)

          {

             下代工型订单.work();

          }

            else  if  (产品状态 == 呆滞品)

          {

             下呆滞品订单.work();

          }

           else  if  (产品状态 == 有库存)

          {

             下出库存订单.work();

          }

            else  if  (产品状态 == 备料)

          {

             下备料订单.work();

          }

     }

}

  else  //赠品 或 换货 或 免费返修

{

           if (赠)

           {

              下 赠品订单.work();

           }

           else if (换)

           {

              下 换货订单.work();

           }

             else if (免费返修)

           {

              if ( 部门 == 内贸 )

              {

                下国内返修订单.work();

              }

              else // 部门 == 外贸

              {

                下国外返修订单.work();

              }

           }



}



}
ERP 单别说明
 
订单 单别 单别名称 单别意义 特殊说明
2201 国外订单   国外客户、正常单价、量产的订单 仓库别必须是纳入LRP计算的,比如成品2仓
2202 国内订单   国内客户、正常单价、量产的订单
2203 备库存订单 用于备货、需要生产的订单,后续可以借用、出库存、赠送  
2204 备料单     每月定期用于备料的订单 仓库别必须是纳入LRP计算的,比如成品2仓
2205 库存出货单 无需生产,有库存可以直接出货的订单,包括试产产品库存 仓库别无限制
2206 换货订单 单价为0、免费更换的特殊订单,有库存则备注直接出货,否则默认需要生产 仓库别必须是纳入LRP计算的,比如成品2仓
2207 国外返修单 国外客户、特殊单价的订单
2208 国内返修单 国内客户、特殊单价、0单价需要返修的产品的订单,比如40块返修费、或免费返修
2209 滞品订单  (总监审核) 呆滞品、库存出货的订单,不分国内和国外 仓库别无限制
2210 试产订单   尚在试产状态的产品、需要生产的订单,不分国内和国外 仓库别必须是纳入LRP计算的,比如成品2仓
2212 经济线订单 经济型产品的订单,不分国内和国外
2211 代工订单   给客户代工生产的订单,不分国内和国外
2213 赠品订单  (总监审核) 单价为0、免费更换的特殊订单,有库存则备注直接出货,否则默认需要生产  

ERP运行4年来,我们陆续增加到13种订单单别。业务员下单的工作已经成为一种程序员才能干的活——吐槽。

每一种单别的背后,都有特殊的管理意义。当然现在来看很多考虑不周,属于没必要新增的单别。如果公司高层管理人员学过面向对象,或许可以避免——马后炮。


 

管理哲学(单据审核、统计分析、质量管理、流程管控):

2201 国外订单 和 2202 国内订单 是按照 地域划分的,目的是为了审核方便和便于后续统计销售数据。那时候营销部没有划分内贸课和外贸课,笼统的是一个大部门。

2203 用于备库存,需要生产出成品入库,由于无单价,在当时属于公司行为,因此没有区分国内和国外。但是现在来看,成品库存呆滞和物料呆滞多半跟责任不清有很大关系,所以后续应该按业务员下单,取消计划经济,走市场经济。

2204 备料单 仅仅用于购买物料,并不生产,因此和2203有明显的区别。但是按业务员备料是去年年中才开始的。警惕呆滞料。

2205 库存出货单,是在2203备库存的基础上,直接出货的。纠纷在于热销产品的资源如何分配。

2206 换货订单和2213赠品订单 原本是1个单别,但是公司一统计发现好多出货其实不是免费赠送给客户的,是产品质量问题导致的免费更换\生产,所以应该计提售后服务费,不应该和赠品合在一起。

2207 国外返修单和2208 国内返修单,客户退货回来,只需要返修,不需要生产,价格也许象征性收点,所以单别要单独。

2209 呆滞品销售,因为价格和正常品有很大差异,所以为了避免影响正常品的利润,使销售报表的利润率更加动人,因此独立出来是必须滴。

2210 试产订单,生产流程和质量管控流程都不一样,因此也必须独立出来。

2212 经济线订单,价格和正常品有差异。

2211 代工订单,苍蝇也是肉,价格。

2213 赠品订单,免费赠送,总监审批,要按年、月 XX 统计。


 

分析了管理目的和意义之后,我们再从面向对象的思想去思考,如果换做是我们自己,既要满足管理哲学,还要低耦合高内聚,那么这些单别应该如何建立呢。

第一步,建类和属性

人员:张三、李四

客户:A 、B、\ C

部门:内贸、外贸

单价:正常、赠品、呆滞品、经济型、代工型

币种:RMB、USD

出货种类:正常生产、退回返修、备料、备货

第二步:

上述对象已经不可再分割,怎么能做到既满足管理要求,业务员又可以以最少的单别完成下单工作呢。

业务员如何才可以做到不动脑子就可以完成下单工作。

第三步:

我的思考是1个单别+2个字段对象组合。

在订单单身加1个“销售种类”的字段,属性有{正常、赠品、呆滞品、经济型、代工}。

在订单单身加1个“出货种类”的字段,属性有{正常生产、退回返修、备料、备货}。“试产”放在产品名称。

所有销售报表的维度都加入“销售种类”和“质量状态”,销货时根据维度选择对应的销货单别(注:目前使用的ERP是用销货单别进行数据筛选,进行销售利润、净量、净额金酸)。

业务员下单通过以下步骤完成:

打开程序
1、只有1个单别,故自动带入
2、录入客户 自动带入业务员、币种
3、根据业务员 自动带入部门
4、录入品号,带出品名和规格,如果品名有试产2次,则表示是试产产品
5、选择销售种类{正常、赠品、呆滞品、经济型、代工}。
6、选择出货种类{正常生产、退回返修、备料、备货}
7、录入单价
8、保存
退出


 

面向对象真是太伟大了,业务员终于不用加班下单了。

业务员现在是拯救出来了,那流程管控其实还是失效的。

此时该ERP和OA集成出马了,利用OA进行电子签核,通过属性字段去判断流程走向,文员MM再也不担心往哪里送单了。

你可能感兴趣的:(代码)