您的位置:首页 > 编程语言

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

2015-01-09 16:02 134 查看
业务员下订单,要思考 如下情况:

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再也不担心往哪里送单了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐