SAP B1外发加工件成本的处理方法(曹玉平于奥莱照明)
针对一个要进行多次加工的毛坯物料,如果要精确反映其成本,则必须对不同时期加工的方法指定一个代码。在SAP B1中解决的方法如下:
1、 先在物料主数据中,增加三个字段,第一字段描述为毛坯代码,名称SourceCode。第二个字段描述为毛坯单价,名称SourcePrice。第三个字段描述为外发单价,名称为AddPrice。
2、 对每个加工类型物料代码设置其不同时期的毛坯代码。
举个例子,有个电话筒,经过开模后,在注塑机上,用PC原料加色粉做成话筒毛坯,我们将此毛坯话筒加代码:020101001,描述这样写:话筒-毛坯。对于此物料,如果要反映其成本和料用量,需新增一个BOM清单,内容是PC原料和用量,另外还有将色粉及用量也加入清单。
记住上面的做法,只有是最原始的毛坯物料才采取这种方式。
现在话筒的毛坯的做出来了,然后需要外发喷油。这时我们要对此物料加新代码:020102001,描述这样写:话筒-喷油。在物料主数据中,将此物料的毛坯代码直接指向020101001,也即:话筒-毛坯。
话筒喷油回来,还需外发电镀成铬色。我们再新加一个代码020103001,描述这样写:话筒-电镀(铬色)。在物料主数据中,将此物料的毛坯代码指向0201020001也即:话筒-喷油。
OK,现在一个完整的外发物料代码基本建好了,接下来要写段SQL程序来计算其真实成本了。首先计算最原始的毛坯,即0201010001 话筒-毛坯。
SQL代码如下:
DECLARE @SourcePrice MONEY,@AddPrice MONEY
IF LEFT(ItemCode=’020101’ BEGIN --从物料清单中取单价
SELECT @SourcePrice=SUM(Price FROM ITT1 WHERE
Father=’020101001’)
UPDATE OITM SET SourcePrice=@SourcePrice
WHERE ItemCode=’020101001’ –只更改毛坯单价
END ELSE BEGIN
SELECT @SourcePrice=Price FROM POR1
WHERE ItemCode=SourceCode --取毛坯单价
SELECT @AddSourcePrice=Price FROM POR1
WHERE ItemCode=’0201020001’ -- --从采购订单中取单价
UPDATE OITM SET SourcePrice=@SourcePrice,AddPrice=@AddPrice
WHERE ItemCode=’020102001’ --既更改毛坯单价,又更改外发加工价
END